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é] [INCLUDE]/[GET] Trou de sécurité ???


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Points : 353
    Points
    353
    Par défaut [Sécurité] [INCLUDE]/[GET] Trou de sécurité ???
    Bonjour,

    Je viens de lire dans un post que la méthode include/Get était un trou de sécurité ...

    C'est vrai que quelqu'un peut y inclure le fichier qu'il veut ...

    N'y a t il pas moyen de la sécuriser ( en vérifiant que le fichier inclus ne contienne pas de http:// par exemple ...)

    J'ai plusieurs applis qui tourne comme ca ... et je préfererai les sécuriser plutot que de les recommencer ...

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    en effet, c'est une faille qu'il est tres facile de mettre, sans meme s'en apercevoir.

    le cas le plus dangereux est celui ou tu inclues un fichier sans chercher a savoir si c'est un fichier sain ou pas.

    donc, si tu recuperes un argument par index.php?affich=machin.php

    en faisant ensuite dans le script php un include($HTTP_GET_VARS['affich']), c'est la porte ouverte a tous les abus et toutes les attaques. C'est pourquoi il est fortement conseille de construire toi meme le nom du fichier a inclure a partir des arguments de l'url :

    par exemple faire une url du genre index.php?affich=machin
    et ensuite faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $file = "./".$HTTP_GET_VARS['affich'].".extension_de_ton_choix";
    include ($file);
    ainsi, l'argument qui peut etre dangereux est encadre par des caracteres que tu fixes.
    Et ainsi, il est impossible d'injecter des pages d'autres sites.

    Sinon, tu peux utiliser la methode decrite ici ou il est explique comment se servir des fonctions d'analyse de fichiers (fread et ses soeurs) pour gerer des templates.

  3. #3
    Membre averti Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Points : 353
    Points
    353
    Par défaut
    Bonjour

    Quels sont les risques réelement encourus ... ???
    J'ai fait quelques tests mais il sembles que les actions contenure dans le fichier inclus soient exécutées sur le serveur qui héberge le fichier inclus en question ... donc ... pas de dégâts de mon coté ...

    Merci

  4. #4
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    et bien ... j'ai moi aussi fait quelques tests avec 2 serveurs, l'un (A) incluant un fichier heberge par l'autre (B) et .... j'ai bien reussi a modifier le serveur A. J'ai juste fait une creation de fichier, j'aurais tres bien pu ouvrir en ecriture un fichier, disons par exemple index.php (a condition que les droits soient suffisants)

    Lorsque le fichier a inclure etait en .php, en effet, il etait interprete sur le serveur B (donc aucun danger), mais par contre, lorqu'il portait l'extension .oulala il n'etait pas interprete sur B mais sur A ....

    Bon, ensuite, ca depend du serveur qui heberge le fichier a inclure et de sa config. Certainex extensions sont interpretees et d'autres non.

  5. #5
    Membre éprouvé Avatar de trattos
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 000
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 000
    Points : 1 080
    Points
    1 080
    Par défaut
    Ce n'est pas une faille de sécurité, mais ça peut l'être si tu codes mal
    Si tu peux inclure un fichier directement en ajoutant son url dans la barre d'adresse alors là oui!

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

Discussions similaires

  1. [MySQL] Sécurité en GET
    Par andaman dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/05/2013, 16h44
  2. Un trou de sécurité ?
    Par fraginfo dans le forum Administration
    Réponses: 12
    Dernier message: 06/11/2011, 17h52
  3. Trou de sécurité
    Par sansblague dans le forum Apache
    Réponses: 2
    Dernier message: 21/01/2007, 10h49
  4. Include + get
    Par Amenos dans le forum Langage
    Réponses: 11
    Dernier message: 06/04/2006, 14h47
  5. [Sécurité] Include
    Par Skarlix dans le forum Langage
    Réponses: 4
    Dernier message: 20/11/2005, 01h23

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