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 &
- le guillemet devient "
- l’apostrophe devient ' ;
- < devient <
- > devient >
- 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.