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 :

[Sécurité] Sécuriser les GET dans un formulaire [Fait]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Points : 26
    Points
    26
    Par défaut [Sécurité] Sécuriser les GET dans un formulaire
    Salut,

    J'utilise un formulaire avec la méthode GET et je me demandais ce qu'il ne fallait surtout pas oublier pour sécuriser l'inscription des données et l'affichage des résultats. J'ai déja un parcouru les forums mais je n'ai pas envie de prendre de risques...

    Merci d'avance!

  2. #2
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    bonsoir,

    Tout dépend des donnés qui transitent par le get.
    Dans un premier temps, pour sécurisé un peu plus ("j'ai bien dit un peu") le mieux est de passer par la méthode post.

    Sont-elles destinées à une base de données??

    ++

  3. #3
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    En général on utilise la méthode POST dans les formulaires et GET dans les URLs.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Le problème c'est qu'avec mon formulaire en POST, je ne parviens pas à récupérer mes variables de pages en pages, donc j'ai opté pour le GET avec lequel je récupère tout via l'URL. Mais... c'est vraiment moins bien que POST ?

  5. #5
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Sans doute parce qu'en POST tu récupères tes variables directement, or il faut utiliser la superglobale $_POST :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_POST['le_nom_ta_variable'];
    Encore un article à lire ici

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Ok merci bien je vais aller lire ça, juste une question : j'ai lu que les superglobales n'étaient pas forcément activées dans le php et qu'elles posaient parfois des problèmes de sécurité c'est vrai ?

  7. #7
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    $_POST, $_GET, $_FILE et de nombreuses autres sont présentes depuis PHP version 4.1.0

    Pour la sécurité, la directive register_globals devrait être à OFF (c'est à OFF par défaut depuis PHP 4.2.0 ) et tu devrais donc utiliser les superglobales ci-dessus.

    Voir dans la DOC PHP -> Variables prédéfinies

  8. #8
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    bonjour,

    D'ailleurs un petit conseil si tu as ton register_globals à ON, n'appels jamais des variables de type différent du même nom.

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $_POST['var'];
    $var;
    $_SESSION['var'];
    Ces trois variables seront les mêmes, donc bien faire attention, on peu avoir de mauvaises surprises parfois. C'est notamment pour cette raison qu'il a été mis à OFF.

    ++

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    De toute façon, quelle que soit la méthode utilisée pour récupérer des infos utilisateur (POST, GET, COOKIES...), il faut considérer qu'elles sont potentiellement corrompues et dangereuses. La méthode ne change rien à l'affaire : tu peux pirater un POST (presque) aussi facilement qu'un GET.
    A faire donc : contrôler systématiquement toute donnée utilisateur (présence, format, taille, caractères...). Toujours échapper les valeurs avant enregistrement en bdd pour éviter l'injection SQL (par exemple avec mysql_real_escape_string() pour mysql). Toujours échapper les valeurs avant affichage, notamment pour réafficher le contenu d'un formulaire, par exemple après erreur (avec htmlentities() par exemple).

    Dernière chose : les sessions sont à mon avis beaucoup plus efficaces pour un formulaire de plusieurs pages. En effet, tu n'as pas besoin avec elles de valider l'ensemble des données à chaque page, mais uniquement celles qui viennent d'être postées.

Discussions similaires

  1. Réponses: 13
    Dernier message: 24/11/2006, 14h31
  2. Trier les données dans un formulaire.
    Par nini94 dans le forum Access
    Réponses: 6
    Dernier message: 23/11/2006, 17h14
  3. [Sécurité] sécuriser les données d'un site
    Par lodan dans le forum Langage
    Réponses: 10
    Dernier message: 20/07/2006, 12h26
  4. [VBA Excel] Ordonner les tabulations dans un formulaire
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/06/2006, 13h41
  5. garder les données dans le formulaire
    Par nebil dans le forum Langage
    Réponses: 3
    Dernier message: 28/05/2006, 00h44

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