IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Synthèse sur la sécurité des formulaires


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Points : 113
    Points
    113
    Par défaut [SQL] Synthèse sur la sécurité des formulaires
    Salut à tous,

    J'ai lu avec intérêt les infos dans les posts relatifs aux formulaires et la FAQ PHP.

    Mon cas, est le cas archi classique:
    Formulaire HTML -> script PHP -> base MySQL 5
    Et inversement lors de l'affichage des données:
    base MySQL 5 -> script PHP -> page HTML.

    De ce que j'ai compris, pour nettoyer les chaines issues d'un formulaire, on utilise le script php ainsi avant d'insérer dans la base:
    $nom=mysql_real_escape_string(trim($_POST['nom']));
    ....
    Cela permet d'éviter les failles d'injection SQL.
    Comment puis-je supprimer les balises HTML éventuelles tapées dans les formualires ?
    Suis-je à l'abris des failles XSS ?

    D'autres vulnérabilités possibles sur les formulaires ?

    Merci

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Tu n'as pas besoin de supprimer les balises HTML, puisque normalement tu utilises la fonction htmlentities() ou htmlspecialchars() au moment de l'affichage.
    La faille XSS ne s'applique pas à l'enregistrement en BDD mais à l'affichage (cf. avertissement ci-dessus).
    Appeler mysql_real_escape_string() est suffisant pour te protéger des attaques d'injection SQL si tu utilises une base MySQL. Je te recommande cependant d'utiliser une classe d'abstraction : PDO est bien plus efficace que mysql_real_escape_string(), dans la mesure où il permet d'éviter les injections SQL pour tous les types de BDD supportés.

    Voici un tutoriel sommaire : Les formulaires et PHP5

  3. #3
    Membre régulier Avatar de thanaos
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 76
    Points
    76
    Par défaut
    A tout hazard : Guide de Sécurité PHP.
    Ca vaut ce que ca vaut.

  4. #4
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Points : 113
    Points
    113
    Par défaut
    Pour reprendre ta remarque sur les affichage Yogui, tu veux dire que par ex pour afficher une donnée sur ma page HTML, ce code:
    L'utilisateur :<?php echo "$nom" ?>
    doit être:
    L'utilisateur :<?php echo (htmlentities("$nom")) ?>
    ?

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    En utilisant les 2 paramètres optionnels de la fonction, c'est exactement ça.

  6. #6
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Points : 113
    Points
    113
    Par défaut
    Merci pour ces conseils éclairés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Question sur les contrôles des formulaires
    Par Duddy dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/01/2010, 12h42
  2. Réponses: 0
    Dernier message: 10/11/2009, 14h04
  3. [AC-2003] Supprimer l'alerte sur la sécurité des macros
    Par marot_r dans le forum Sécurité
    Réponses: 6
    Dernier message: 01/05/2009, 17h24
  4. Réponses: 1
    Dernier message: 27/03/2008, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo