Sécurisation de formulaire injections sql/xss

JEY -  
pols12 Messages postés 1143 Date d'inscription   Statut Membre Dernière intervention   -
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 765 Date d'inscription   Statut Membre Dernière intervention   239
 
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   Statut Membre Dernière intervention   119
 
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