Protection contre faille xss

Lorsqu'en javascript certaines variables sont mal protégées, et sont directement mises dans l'url, il est possible d'injecter du code arbitraire. Par exemple, imaginons un script pour afficher une page :

<?php
[...]
print("page : $page");
[...]
?>

Si le nom de la page est hack me.htm cela donnera :

http://site_vulnerable.com/?page=hack%20me

Le hacker peut donc envoyer n'importe quel code via l'url grâce à la faille XSS :

http://site_vulnerable.com/?page=<script>alert("alph4net");</script>

Ce qui aura pour effet de faire apparaitre une boite de dialogue avec écrit : alph4net
dedans, et là, au cas ou vous ne l'auriez pas vu, il y a une faille, c'est une faille
XSS non-permanente

Maintenant pour sécuriser tous ça, à chaque fois que vous utilisez les fonctions
echo et print() pour afficher une variable faite ceci :

<?
print(htmlspecialchars($variable));
?>

ou

<?
echo htmlspecialchars($variable);
?>

Au lieu de ça:

<?
print($variable);
?>

ou

<?
echo ($variable);
?>

Voila, je le répète, c'est a titre d'information, c'est pour que les personnes qui créent des script php, les sécurisent au Max. Certains (même beaucoup) connaissent cette faille, mais il n'y a pas que des ingénieurs sur ce site ... ;)

Ce document intitulé « Protection contre faille xss » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous