Sécurisation de formulaire injections sql/xss

Fermé
JEY - 9 févr. 2011 à 22:10
pols12 Messages postés 1143 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 31 juillet 2019 - 10 févr. 2011 à 14:37
Bonjour,

J'ai cherché pour se protéger des injections lors du traitement d'un formulaire mais je ne comprend pas les étapes:

Lorsqu'on envoie sur la bdd on fait un mysql_real_escape_string(); pour éviter les injection sql

et quand on récupère les données et qu'on les affiche, il faut faire un htmlentities(); pour éviter les injections XSS

La question que je me pose est:
Peut-on se protéger des injection XSS dès l'insertion dans la bdd ? Ainsi on éviterait de devoir à chaque affichage utiliser la fonction htmlentities() .



Merci

2 réponses

le_joker_fou Messages postés 764 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 7 août 2014 239
Modifié par le_joker_fou le 10/02/2011 à 13:55
Avant l'envoi en base de données tu utilise la fonction strip_tags() de PHP.

Cette fonction supprime toutes les balise HTML.

https://www.php.net/manual/fr/function.strip-tags.php

Ou alors tu fais htmlentities() avant l'enregistrement en base.
0
pols12 Messages postés 1143 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 31 juillet 2019 119
10 févr. 2011 à 14:37
Salut !
$valeur = htmlspecialchars(addslashes($valeur))
Et tu insert $valeur modifié dans ta base. ;)

Ce sont deux exemples de fonctions, juste pour dire que tu peux tout à fait sécurise les variables AVANT l'insertion dans la base. ;)
Mais des fois, la manoeuvre inverse sera nécessaire à la sortie, ce qui rendra le code aussi lourd que si on sécurisait à la sortie... :P
0