Aller au contenu

PHP include : faille ?


Sujets conseillés

Posté

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

Posté

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

Posté
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

Posté

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.

Posté

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');

?>

Posté

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.

Posté
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 ?

Posté

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.

Posté

pour éviter l'acces direct au fichier, jai mis tous les fichiers que j'inclus dans un même dossier (triés en sous dossiers) avec une protection htaccess dans chaque dossier.

Veuillez vous connecter pour commenter

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



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