• Empleos
  • Sobre nosotros
  • Empleos
    • Inicio
    • Empleos
    • Cursos y retos
  • Empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

265
Vistas
Inyectar y ejecutar JavaScript en un DOM existente

Estoy jugando con inyectar código JavaScript en un DOM existente.

He visto que si pongo el script a mano en el inspector de elementos DOM del navegador

 <script>alert("XSS test");</script>

el nodo de script se agrega al DOM, pero no tiene ningún efecto . Quiero decir, no se muestra ningún cuadro de alerta.

captura de pantalla

Por otro lado, si coloco el script como texto sin formato a través de la consola de JavaScript usando document.write(), en este caso el código se analizó y ejecutó de inmediato, y el cuadro de alerta se muestra como se esperaba.

 document.write('<script>alert("XSS test");</script>');

Estoy acostumbrado a ver que los cambios hechos a mano en los elementos DOM en el inspector se reflejan inmediatamente en la página, mientras que parece que los nodos de JavaScript son una excepción.

¿Por qué los navegadores web no ejecutan los nodos JavaScript puestos a mano en el inspector?

¿Hay otra forma de enviar el nodo de secuencia de comandos al DOM y hacer que se ejecute de inmediato?

over 3 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Las etiquetas de script agregadas a través de innerHTML y los métodos relacionados ( insertAdjacentHTML , etc.) no se ejecutan. (Las reglas exactas se encuentran en alguna parte de la secuencia de script de la especificación HTML, pero es difícil). Esto puede deberse a que se identificó desde el principio que las páginas mal escritas podrían usar innerHTML y demás para agregar contenido del usuario, por lo que no ejecutarlo fue una forma rápida y sencilla de evitar ataques XSS muy, muy básicos. Pero solo muy, muy básicos.

Puede agregar una etiqueta de secuencia de script al DOM y hacer que se ejecute creando y agregando una etiqueta de secuencia de comandos:

 const script = document.createElement("script"); script.textContent = `console.log("Hi there");`; document.body.appendChild(script);

Puede hacerlo desde la pestaña de la consola en devtools, por ejemplo, en lugar de la pestaña del inspector DOM.

over 3 years ago · Juan Pablo Isaza Denunciar

0

intente ir a la página web que desea y luego en la barra de URL en la parte superior agregue

javascript:[su secuencia de comandos]

por ejemplo

javascript:alert("¡Hola mundo!");

over 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda