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é] Pourquoi require_once() et pas require() ?


Sujet :

Langage PHP

  1. #1
    Inscrit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Points : 282
    Points
    282
    Par défaut [Sécurité] Pourquoi require_once() et pas require() ?
    Bonjour,

    Voilà plusieurs fois que je lis qu'il vaut mieux utiliser la fonction require_once() plutôt que require(), car cette dernière peut donner au pirate une opportunité d'attaque.

    Mais qui peut expliquer précisément pourquoi ?

  2. #2
    Membre éclairé
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Points : 823
    Points
    823
    Par défaut
    Salut g trouvé ca sur un site

    http://www.pcinpact.com/forum/index....0#entry1592617

    Au meme titre que l'include cité precedement sauf qu'elle est sensible au byte null genre %00
    Si par exemple on a require("/home/web/lib/".$truc.".php");
    on peut poisonner truc via cookie/post/get et lui append %00 a la fin pour enlever le ".php" c'est pour cela qu'il est absolument preconisé d'utiliser require_once et des variables statiques.

    Apres cela reste la sql injection qui peut mener jusqu'a une intrusion de l'os :
    L'exemple parlera de lui meme
    ++
    JC

  3. #3
    Inscrit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Points : 282
    Points
    282
    Par défaut
    Merci pour le lien jc_cornic (écossais ?)

    J'ai pas tout compris mais bon ça semble confirmer que require_once() est plus fiable que require(), en effet.

  4. #4
    Membre éclairé
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Points : 823
    Points
    823
    Par défaut
    cornic est breton d'origine... mais j'aime bien l'écosse

Discussions similaires

  1. Accept : pourquoi ça marche pas ?
    Par doudblast dans le forum Linux
    Réponses: 16
    Dernier message: 08/03/2005, 11h48
  2. [Système][Path]pourquoi j´ai pas de Classpath?
    Par lobiman dans le forum Général Java
    Réponses: 7
    Dernier message: 17/02/2005, 09h35
  3. Réponses: 4
    Dernier message: 08/01/2005, 22h32
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43
  5. pourquoi je peux pas parler pgplsql ?
    Par blob.b dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 09/09/2003, 23h22

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