sltpaulo a écrit :
Code :
- <?php
- header('Content-Type: application/pdf') ;
- header('Content-Disposition: inline') ;
- readfile(($_GET['pdf_name']));
- ?>
|
|
Jolie faille de sécurité là...
EDIT (pour un peu préciser les choses) : tu appelles readfile en lui donnant un paramètre qui vient directement de l'utilisateur, sans contrôle ou validation. Concrètement, ça signifie qu'en jouant sur la valeur du paramètre "pdf_name", on va pouvoir obtenir le contenu de n'importe quel fichier accessible à l'interpréteur PHP. Entre autres : code source des fichiers php (dans lesquels on pourrait avoir des mots de passe), fichiers système, et suivant les options de compilation de php, on peut même ouvrir des urls avec readfile.
Quand on fait ce genre de trucs, 2 règles à respecter absolument :
- on choisi un répertoire qui va contenir les fichiers qui peuvent être par ce biais (et rien d'autre)
- on s'assure que le paramètre passé à readfile pointe vers un fichier contenu dans ce répertoire
Message édité par Riokmij le 27-08-2012 à 21:52:28