TOday necesitaba demo XSS basado en DOM, y encontré esta página que está hecha para el mismo propósito exacto
Me pregunto por qué <img+src+onerror=alert(1)>
funciona pero <script>alert(1)</script>
no?
TOday necesitaba demo XSS basado en DOM, y encontré esta página que está hecha para el mismo propósito exacto
Me pregunto por qué <img+src+onerror=alert(1)>
funciona pero <script>alert(1)</script>
no?
La página a la que te refieres tiene el siguiente código:
<p id="p1">Hello, guest!</p>
<script>
...
var username = searchParams.get('name');
...
document.getElementById('p1').innerHTML = 'Hello, ' + username + '!';
Su expectativa es que la configuración del nombre de usuario en <script>alert(1)</script>
debería dar como resultado <p id="p1">Hello, <script>alert(1)</script></p>
, lo que en su opinión debería dar como resultado la ejecución del script.
Pero este no es el caso. La documentación de Element.innerHTML
explica por qué:
HTML5 especifica que no se debe ejecutar una etiqueta
<script>
insertada con innerHTML.
Inmediatamente antes de esta declaración también hay un ejemplo similar al suyo para ilustrar esto.