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

  1. 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
  2. pols12 Messages postés 1143 Date d'inscription   Statut Membre Dernière intervention   120
     
    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