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 :

Éviter le passage d'une url dans mon url


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut Éviter le passage d'une url dans mon url
    Bonjour,

    j'ai un petit souci avec une tentative de piratage sur mon site...
    Pour accéder aux différentes pages de mon site, je passe par une variable "nav" qui prend différentes valeurs : 1, 2, 3, 4, 5... chaque valeur numérique étant en fait le nom de la page contenu.

    mon url est donc : http://mondomaine.com/index.php?nav=1&souscat=2

    Le souci : j'ai un salopard qui appelle manipule l'url de la façon suivante :

    http://mondomaine.com/index.php?nav=...c/machin.txt??

    machin.txt tentant l'exécution d'une commande perl interdite par mon hébergeur qui au final me bloque mon site...

    Comment puis-je faire pour éviter cela ? j'ai penser faire un test sur "nav" pour tester si c'est bien un numérique et lui affecter une valeur par défaut, mais est-ce suffisant ?

    de plus si la valeur de nav (i.e : index.php?nav=page1) était un string, comment aurais-je pu contrer la tentative de piratage ?

    Merci de votre aide !

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 28
    Points : 25
    Points
    25
    Par défaut
    Tu peux simplement mettre les pages autorisées dans un tableau et tester avec un in_array()

  3. #3
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut
    J'avais pensé créer une page à inclure en début de script avec la gestion de toutes mes variables GET afin de tester la valeur de chacun d'elle et leur donner des valeur par défaut en cas de détection d'une valeur non autorisée...

    Est-ce une bonne solution ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 28
    Points : 25
    Points
    25
    Par défaut
    Bah en gros faire un truc du genre ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    $page_finale = (in_array($_GET['nav'], $pages_autorisees)) ? htmlspecialchars($_GET['nav']) : 'page_par_defaut.html';
     
    // Puis tu inclus $page_finale ..
    ?>
    non ?

  5. #5
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut
    ok, merci !

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

Discussions similaires

  1. passage de parametre dans l'URL dans une jsp
    Par marry dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 05/05/2009, 18h23
  2. Réponses: 7
    Dernier message: 25/01/2006, 21h37
  3. Integrer une musique dans mon programme
    Par Tutux84 dans le forum C
    Réponses: 2
    Dernier message: 29/01/2005, 12h41
  4. [MFC] Passage d'une structure dans une method
    Par KPitN dans le forum MFC
    Réponses: 5
    Dernier message: 18/06/2004, 10h11
  5. [] Utiliser AVI d'une DLL dans mon programme
    Par seb.49 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/05/2003, 14h52

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