Médiaforma

PHP MySQL – Evitement du Cross-Site Scripting (XSS)

Print Friendly

Supposons qu’un internaute entre le code suivant dans une zone de saisie :

<script>alert('Le vengeur masqué est sur le point de formater votre disque !!!');</script>

Et que ces informations soient stockées dans une variable PHP :

$saisie = "<script>alert('Le vengeur masqué est sur le point de formater votre disque !!!');</script>";

Si vous affichez cette chaîne telle quelle, vous obtiendrez l’affichage d’une boîte de dialogue :

Pour éviter ce genre de problème, vous devez appliquer une fonction d’échappement à tout ce qui est saisi par l’utilisateur. Vous pouvez utiliser la fonction :

  • htmlspecialchars() qui transforme les caractères spéciaux en entités HTML :
    • & devient &amp;
    • le guillemet devient &quot;
    • l’apostrophe devient &#039 ;
    • < devient &lt;
    • > devient &gt;
    • htmlentities() qui transforme tous les caractères spéciaux (ceux transformés par htmlspecialchars() mais aussi les caractères accentués) en entités HTML.
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply