PHP INITIÉ - Nettoyer vos entrées non sécurisées en sortie

PHP INITIÉ - Nettoyer vos entrées non sécurisées en sortie

Il est bien connu, que toutes les entrées non sécurisées (en particulier les entrées utilisateur, à partir de formulaires) doivent être nettoyées avant leurs sorties.

PHP INITIÉ - Nettoyer vos entrées non sécurisées en sortie

Exemple classique:

.01
.02
.03
.04
 
<?php
echo $_GET['username'];
?>




Peut par exemple donner en sortie:
.01
.02
 
<script>/*snoop cookie change admin password script php*/</script>



Il s'agit là d'un risque bien apparent pour la sécurité de ne pas nettoyées les données douteuses avant leur sortie. De plus, vous pouvez vous retrouver avec des pages en grand désordre si vous n'enchaînez pas les entrées utilisateur de la bonne façon.

Comment faire pour résoudre ce problème:
En principe, vous devez convertir < , >, ' et " en leurs propres entités (< , > ' , et ") . Les fonctions htmlspecialchars et htmlentities font ce travail.

Voici la bonne façon de faire:
.01
.02
.03
.04
 
<?php
echo htmlspecialchars($_GET['username'], ENT_QUOTES);
?>




D'innombrables scripts contiennent ce problème.