Une des façons, XSS peut être exploitée, est d'utiliser la balise suivante:
"><script>alert(document.cookie)</script>
Ici, quelle est la signification de ">
avant le script (<script>
tag) et pourquoi est-il utilisé?
De cette façon, vous échappez d'un attribut entre guillemets doubles ("
) et fermez la balise précédente (>
) avant d'ouvrir une balise de script contenant votre charge utile. C'est l'un des modèles XSS les plus élémentaires.
Exemple:
<input type = "text" value = "$ XSS">
Avec votre séquence, cela devient:
<input type = "text" value = ""> <script> alerte (document.cookie) </script>"> ^ - une balise terminée ^ - ordures de charge utile - ^
Notez que votre vecteur ne fonctionne que si les entités HTML ne sont pas filtrées.
Donc, si vous ne pouvez pas échapper à cet attribut, il est sûr pour XSS. Cela ne déclenche pas:
<input type = "text" value = "<script> alerte (document.cookie) </script>">
Vous pouvez voir la même idée avec XSS dans Javascript (par exemple ');
pour terminer une chaîne et un appel de fonction) ou avec des injections SQL. Les premiers caractères d'une séquence d'injection ont souvent pour but de s'échapper du contexte actuel.
Quant à @ Mindwin's obligatoire injection SQL bande xkcd , j'ai encerclé à main levée la partie à laquelle je fais référence: