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

Langage PHP Discussion :

Formulaire et protection contre injection [Fait]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut Formulaire et protection contre injection
    Bonjour,

    J'ai réalisé un formulaire qui envoi des donnees dans ma bd, 5 données de type texte, une donnée de type textbox et un envoi de type file.

    J'aimerais protéger au maximum mon formulaire contre l'injection de script.

    Seulement je ne sais pas si je dois formater mes données avant leurs envoi sur sql ou aprés lors de l'affichage des données dans mon site ???

    Quesqui est le plus éficase d'aprés vous ??

  2. #2
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Il faut que tu sécurises tes données avant de les envoyer dans ta BD. C'est ce qu'il y a de mieux.
    Il y a pas mal de chose comme ça déjà sur le forum. Tu devrais pouvoir trouver facilement les actions à réaliser.

  3. #3
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Pouéviter les injections SQL tu peux activer magic_quotes_gpc dans ton php.ini ou alors si magic_quotes_gpc n'est pas activé, tu peux utiliser mysql_real_escape_string sur chacune de tes variables que tu passes en paramètres dans ta requête SQL.

    Une injection SQL est normalement une injection de bout de code par l'utilisateur dans ta requête afin de modifier la requête elle-même et non pas les valeurs pour accéder à des infos normalement inaccessible. C'est assez rare en PHP tout de même mais il faut tout de même s'en protéger. Regarde ce post. Donc à l'affichage il ne peut rien t'arriver de bien fantastique

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    ok, je pense avoir compris, mais par exemple quand dans mon formulaire je tape la balise <b>texte<b> mon texte dans l'admin et sur mon site est en gras.

    Comment éviter sa ???

  5. #5
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Tu peux utiliser strip_tags() pour retirer toutes balises HTML et PHP d'une chaine.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    J'ai utilisé strip_tags() comme me la conseillé koopajah sur tout mes echos sensible, est-il possible de se contenter de cette sécurité ????

  7. #7
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par Overstone
    J'ai utilisé strip_tags() comme me la conseillé koopajah sur tout mes echos sensible, est-il possible de se contenter de cette sécurité ????
    Non il faut aussi te protéger des injections SQL et donc utiliser mysql_real_escape_string()

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    Si ma bd ne contient qu'une info confidentiel j'utilise mysql_real_escape_string() que sur cette valeur ???

  9. #9
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par Overstone
    Si ma bd ne contient qu'une info confidentiel j'utilise mysql_real_escape_string() que sur cette valeur ???
    Non, ca n'a rien a voir avec les infos confidentielles: definition
    Tu dois l'utiliser sur tous les champs texte que tu insères dans la base (voir les autres si tu ne fais pas de vérification dessus)
    en gros tu dois vérifier tout ce qui est saisi par l'utilisateur.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    Ok Je dois placer mysql_real_escape_string() avant ou aprés l'envoi vers ma bd ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // insertion dans base de donnée 
    $sql = "INSERT INTO demande VALUES ( '".$id."', '".$site."', now(), '".$langue[0]."', '".$ip."', '".$mail."', '".$libre."', '".$url."', '".$genre."', '".$langueURL."', '".$describ."', '".$final."', '".$taille."', now())";
    $res = mysql_query($sql) or die(mysql_error());
    car j'ai du mal à comprendre les exemples

  11. #11
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Exemple sur les trois premiers:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "INSERT INTO demande VALUES ( '".mysql_real_escape_string($id)."', '".mysql_real_escape_string($site)."', now(), etc.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    Voila tout marche nikel
    Ya t'il encore quelque chose que je pourais faire pour avoir une sécurité un peu plus accru ... sans vouloir aller trop loin

    sinon je manipule des données dans mon admin et je fait des requetes dans ma partit client, je dois me protéger même là ?

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

Discussions similaires

  1. [PHP 5.4] protection contre injection sql et xss
    Par sinifer dans le forum Langage
    Réponses: 8
    Dernier message: 07/05/2013, 19h31
  2. Protection contre les SQL Injections ?
    Par kedare dans le forum JDBC
    Réponses: 9
    Dernier message: 05/05/2010, 11h42
  3. protection contre les injections SQL
    Par Merling dans le forum Applications
    Réponses: 1
    Dernier message: 23/02/2010, 10h28
  4. Script de protection contre l'injection SQL
    Par mabrouk1987 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/12/2009, 09h52
  5. [MySQL] Protection contre les injections
    Par hafcher dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/06/2008, 21h35

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