Aller au contenu

PHP include : faille ?


Régis

Sujets conseillés

Bonjour,

Débutant en PHP...

Je suis en train de monter un site avec des includes de ce type "include('blabla.inc.php');".

Or je viens de lire, sans plus d'info, qu'il y avait une "faille include de php".

Est-ce que cela concerne le type d'include que je fait ?

Si oui, que faut-il faire ?

Merci

Lien vers le commentaire
Partager sur d’autres sites

Régis,

Il n'y a pas de "faille include", mais il y a des scripts mal écrits. :(

Si le fichier inclus vient d'une variable GET ou POST sans vérification par exemple.

Où donc as-tu lu cette affirmation ? Cela m'intéresserait de lire l'article.

Dan

Lien vers le commentaire
Partager sur d’autres sites

Où donc as-tu lu cette affirmation ? Cela m'intéresserait de lire l'article.

Hello DAN,

Ce n'est pas un article que j'ai lu (pas suffisament pro pour cela), juste une allusion dans un post.

Je me suis, donc, inquiété. Me voilà, rassuré. :D

Sinon, pas de problème, si sur le chemin de mon surf je vois un article, je te le transmet.

Merci

Lien vers le commentaire
Partager sur d’autres sites

Il faut retenir l'intro du second article :

include n'y est pour rien dans cette histoire et comme le dit mon confrère Nicolas Roudaire, la faille est généralement située entre le clavier et la chaise.

Les personnes qui ont commencé à écrire des articles sur ces histoires de faille ont fait grand bruit, puisqu'on en parle encore.

Seulement, ils ont omis de préciser le plus important. Php est suffisamment sûr, pourvu que l'on code bien.

Et bien coder signifie aussi 'se mettre à la place du hacker', et imaginer toutes les subtilités qu'il pourrait envisager pour essayer d'entrer dans notre programme.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Merci pour toutes vos réponses...

Donc, si je vous ai bien compris, il n'y a pas de problème si j'écris mes "includes" ainsi :

<?php include('blabla.inc.php'); ?>

ou

<?php

if($contenu=="blabla") include('blabla.inc.php');

if($contenu=="grrgrr") include('grrgrr.inc.php');

?>

Lien vers le commentaire
Partager sur d’autres sites

Disons que le problème ne vient pas de là.

Disons qu'il faut, dans le fichier blablabla.inc.php et grrgrr.inc.php, redoubler de prudence quant aux variables que tu récupères, et ne pas penser que, parce que c'est un include, personne n'ira essayer de manipuler le fichier directement.

Par exemple, si on tape le nom du fichier blabla.inc.php, que se passe t-il ? ??

On devrait systématiquement tester l'ensemble des fichiers en tapant simplement leur nom dans la barre d'adresse.

Nico.

Lien vers le commentaire
Partager sur d’autres sites

Par exemple, si on tape le nom du fichier blabla.inc.php, que se passe t-il ? ??

On devrait systématiquement tester l'ensemble des fichiers en tapant simplement leur nom dans la barre d'adresse.

J'ai testé en tapant blabla.inc.php, je n'ai que des réponses 404 sauf si on connait le nom du répertoire dans lequel, j'ai placé blabla.inc.php.

A ce moment-là, j'obtiens toute une série d'erreur du type : Notice: Undefined variable: blabla in xxxx\yyyy\blabla.inc.php on line zzzz

Voilà.

Dois-je faire quelque chose ?

Lien vers le commentaire
Partager sur d’autres sites

le principe est de savoir si, dans le cas où quelqu'un aurait connaissance du fichier à son emplacement, ce fichier executerait des commandes qui n'auraient pas lieu d'être.

Le simple fait de mettre, par exemple :

$ok_pour_include="SDKJFHSJRFDSKJHFQSJ";

dans le fichier parent, puis :

if($ok_pour_include!="SDKJFHSJRFDSKJHFQSJ")die("");

en première ligne du fichier inclus éliminera ces erreurs, ainsi que l'accès direct à ce fichier.

Nico.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...