Envoyé par
geekforever
Ces deux fonctions déployées, elles contreraient les injections SQL et XSS
Oui mais séparemment.
Envoyé par
geekforever
Un "mysql_real_escape_string()" / "pg_escape_string()" à l'insertion dans une base de données.
Ces fonctions suffisent à contrer les injections SQL.
Envoyé par
geekforever
Un "htmlspecialchars()" à l'affichage des données provenant d'une BD.
Oui mais attention... quelque soit la provenance des données (formulaire, fichier, BDD, ...).
La fonction sanitize() ci-dessous permet la convertion en fonction du paramètre $html :
$html = false
On empêche les injections SQL dans la base de données
$html = true
On empêche les codes malveillants d'être interprétés dans la page HTML
Un contenu balisé étant "inoffensif" après l'appel à la fonction htmlspecialchars, il est préférable de rendre sa suppression facultative.
Le paramètre $strip à true nous permet de supprimer ces balises.
1 2 3 4 5 6 7 8 9
| function sanitize($str,$strip=false,$html=false){
$s=trim($str);
if($strip)$s=strip_tags($s);
return ($html)?htmlspecialchars($s):mysql_real_escape_string($s);
}
$str = sanitize($texte,false,false); // On se protège des injections SQL
$str = sanitize($texte,false,true); // On se protège des attaques XSS |
Edit : Correction d'une faute de saisie dans le code.
Partager