#14906 - [ÉDIT] Note : astuce sécurité PHP - Le Hollandais Volant
http://lehollandaisvolant.net/?mode=links&id=20160319122329
Bon, mon code n’est toujours pas parfait : ici il y a un problème quand on utilise une réécriture .htaccess.
Par exemple chez moi, la page /contact redirige sur un post particulier (au format normalement /?d=2016/03/29…).
Le /contact ne marchait plus à cause de ce code.
Du coup je me suis rabattu sur un code bien plus simple : on teste simplement si l’URL demandée est constituée du nom du script courant directement suivi d’un slash :
Ça semble marcher.
Rappel : ceci est utile/nécessaire car si on appelle l’URL « example.com/page.php/autre_chose, alors le serveur considère le fichier "autre_chose" situé dans le dossier "page.php".
Si "page.php" est un nom de dossier parfaitement valide, le simple fait d’y accéder constitue une execution du script PHP éventuellement contenu dans "page.php".
Ceci peut être problématique dans certains cas (en particulier dans mon cas pour les url absolues et relatives, étant donnée que "autre_chose" est alors considéré à un niveau de profondeur supplémentaire dans l’arborescence des fichiers par rapport à "page.php")
Par exemple chez moi, la page /contact redirige sur un post particulier (au format normalement /?d=2016/03/29…).
Le /contact ne marchait plus à cause de ce code.
Du coup je me suis rabattu sur un code bien plus simple : on teste simplement si l’URL demandée est constituée du nom du script courant directement suivi d’un slash :
if (strpos($_SERVER['REQUEST_URI'], $_SERVER['SCRIPT_NAME'].'/') === 0) { header('Location: '.$_SERVER['SCRIPT_NAME']); exit; }
Ça semble marcher.
Rappel : ceci est utile/nécessaire car si on appelle l’URL « example.com/page.php/autre_chose, alors le serveur considère le fichier "autre_chose" situé dans le dossier "page.php".
Si "page.php" est un nom de dossier parfaitement valide, le simple fait d’y accéder constitue une execution du script PHP éventuellement contenu dans "page.php".
Ceci peut être problématique dans certains cas (en particulier dans mon cas pour les url absolues et relatives, étant donnée que "autre_chose" est alors considéré à un niveau de profondeur supplémentaire dans l’arborescence des fichiers par rapport à "page.php")