Ho questo codice vulnerabile che accetta un parametro GET e lo inserisce in un elemento HTML ( h1
) e all'interno di un attributo HTML ( data-text
):
$data = $_GET["payload"];
echo "<h1>" .$data. "</h1>";
echo '<div data-role="button" data-text="' .$data.'"></div>';
L'auditor XSS di Chrome bloccherà <script>alert(1)</script>
nel primo echo (all'interno dell'elemento), ma non nel secondo (all'interno dell'attributo) anche se il carico utile potrebbe essere eseguito tramite un gadget di script.
Perché?