2010-06-16 4 views
0

Comment puis-je empêcher XSS mais autoriser l'utilisation de caractères? Comme je peux poster du code HTML sur un forum comme <html><body><h1>Test</h1></html>, mais il ne serait pas rendu dans le navigateur en tant que html? Comment puis-je faire cela pour ne pas convertir les caractères en PHP?Prévenir XSS mais autoriser tous les caractères?

+0

double possible de [Comment éviter XSS avec HTML/PHP?] (Http: // stackoverflow.com/questions/1996122/how-to-prevent-xss-with-html-php) –

Répondre

0

Vous pouvez sécuriser la sortie d'une chaîne avec htmlentities ou htmlspecialchars. htmlentities est plus complet, car il code toutes les entités, tandis que htrmlspecialchars ne transforme que les caractères bracket, quote et les esperluettes.

Par exemple, il change < en &lt;, qui est affiché par le navigateur en tant que symbole < plutôt qu'être interprété comme le début d'une balise HTML.

2

Passez une chaîne par la fonction htmlspecialchars():

// Outputs HTML as literal characters 
echo htmlspecialchars('<html><body><h1>Test</h1></html>'); 
Questions connexes