Tengo este código vulnerable que toma un parámetro GET, y lo coloca dentro de un elemento HTML ( h1
), así como dentro de un atributo HTML ( data-text
):
$data = $_GET["payload"];
echo "<h1>" .$data. "</h1>";
echo '<div data-role="button" data-text="' .$data.'"></div>';
El auditor de Chrome XSS bloqueará <script>alert(1)</script>
en el primer eco (dentro del elemento), pero no en el segundo (dentro del atributo) a pesar de que la carga útil podría ejecutarse a través de un gadget de script.
¿Por qué es eso?