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 :

maîtrise de Get dans URL


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 69
    Points : 67
    Points
    67
    Par défaut maîtrise de Get dans URL
    Bonjour

    J'espère que je poste au bon endroit.

    Depuis un moment je me suis mis au php et je roule ma bosse.

    Maintenant mon site est en ligne et tout vas bien sauf !! Que ...

    Au lieu de me brancher sur phpMyAdmin j'essaie de modérer les messages via mon site. Donc je sélectionnes modération dans mon menu en faisant transiter ma variable $_Get["maVariable"] par l'URL qui traduit le n° de message à modérer pour la récupérer sur la page de modération. Donc si je tapes n'importe quoi dan l'URL après le point d'interrogation je met la page en erreur. Merci de m'expliquer les dispositions à mettre en oeuvre pour éviter ce genre de problème. J'ai lu les tutos pour la sécurité mais je n'ai pas su où trouver l'info.

  2. #2
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Tu trouveras plein de choses ici

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 69
    Points : 67
    Points
    67
    Par défaut
    Merci Marc3001 pour ta réponse.

    Je crois que je vais faire de la lecture avant de continuer.

    Bonne journée

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 25
    Points : 30
    Points
    30
    Par défaut
    Même si la doc est plutôt pas mal, elle ne réponds pas précisément à la question.

    Si tu fais passer l'id dans l'url comme ceci :
    http://ton_site.com/moderate.php?id=tonid

    Si celui ci est un entier (ce qui est généralement le cas), alors il te suffit de verifier comme ceci :

    $id = intval($_GET['id']);

    En faisant ceci, tu ne récupèreras que la valeur entier de l'id et corrige ainsi une potentiel faille (xss).

    Pour les chaines de caractère, il y a la fonction htmlspecialchars()
    Et avant d'enregistrer quoique ce soit dans mysql, il faut faire un mysql_escape_string() sur la valeur à insérer.

  5. #5
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Bonjour,

    Citation Envoyé par JStevens Voir le message
    $id = intval($_GET['id']);

    En faisant ceci, tu ne récupèreras que la valeur entier de l'id et corrige ainsi une potentiel faille (xss).
    et si $_GET['id'] est null ?

    je préfère :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // si $_GET['id'] existe, est différent de 0, et est un numérique 
    if(!empty($_GET['id']) && is_numeric($_GET['id'])) {
     
      // j'utilise $_GET['id']
      $id= $_GET['id'];  
     
    }

    mais on s'éloigne de la question, pour récupérer la valeur dans la page, cela suffit :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $id= (isset($_GET['id'])) ? ($_GET['id']) : (0);
    // $id est egal a $_GET['id'] si il existe, ou 0 par défaut


  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 69
    Points : 67
    Points
    67
    Par défaut
    Merci Jstevens et Ska_root pour vos réponses fructueuses.

    En effet la lecture que j'ai entamée est de très bonne facture mais on ne trouve pas tous les cas de figures, voilà aussi la vocation du forum.

    J'ai appliqué la recommandation de Jstevens, ce qui m'a bien avancé. Mais justement je me suis dis que d'autres cas de figures devraient être traité, et ce qui a comblé mon questionnement fut la tournure encore plus détaillée de Ska_root. Voilà tout est rentré dans l'ordre.

    Par ailleurs il serait intéressant de trouver des cas de figures concrets au regard des failles qui peuvent résulter d'un développement inexpérimenté. Certes cela doit exister dans le forum ou ailleurs. Je m'en vais les découvrir.

    Merci à vous tous.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 25
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par ska_root Voir le message
    et si $_GET['id'] est null ?
    Exacte Au temps pour moi.

    Cependant dans ta deuxième formulation, t'as oublié le intval du coup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id = isset($_GET['id']) ? intval($_GET['id']) : 0;
    ou bien avec is_numeric :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id = isset($_GET['id']) && is_numeric($_GET['id']) ? $_GET['id'] : 0;

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

Discussions similaires

  1. [PHP 5.2] Supprimer valeur GET dans Url
    Par Invité dans le forum Langage
    Réponses: 7
    Dernier message: 15/04/2011, 14h58
  2. Passer un Objet (pojo) par get dans une url.
    Par Altenide dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 09/11/2010, 12h24
  3. Plusieurs paramètres (GET) dans l'url
    Par Gregory.M dans le forum Langage
    Réponses: 2
    Dernier message: 03/10/2008, 18h02
  4. Supprimer une variable GET dans une URL
    Par rophi dans le forum Langage
    Réponses: 2
    Dernier message: 26/02/2008, 01h25
  5. Webservices et passage de variable en GET dans l'URL
    Par SuperCed dans le forum Dynamique
    Réponses: 2
    Dernier message: 12/01/2007, 17h24

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