Risque de sécurité pour auto_prepend_file dans Apache?

J’ai implémenté un fichier PHP auto_prepend_file dans le fichier httpd.conf d’Apache pour protéger chaque page du serveur par un mot de passe. Supposons que le fichier préfixé soit correctement codé et sécurisé. Existe-t-il des risques de sécurité graves liés à l’utilisation d’une méthode auto_prepend_file? Je suis inquiet que cela ouvre une sorte d’attaque par script croisé ou que l’access puisse être falsifié. Merci pour l’aide 🙂

Dans httpd.conf:

php_value auto_prepend_file "path/to/application/auth/include/secure.inc" 

Tant que votre script die() correctement si l’utilisateur n’est pas authentifié (même après header() redirections header() , très important!), Il n’y a pas de problème fondamental que je puisse voir avec cela.

Le manuel ne donne pas beaucoup de raisons de s’inquiéter non plus (emphase sur moi):

Le fichier est inclus comme s’il avait été appelé avec la fonction require () , donc include_path est utilisé.

Veillez simplement à toujours utiliser un chemin absolu pour éviter les problèmes avec des chemins relatifs.

La seule attaque à laquelle je peux penser consiste à injecter un fichier .htaccess quelque part sous la racine du répertoire qui annule le paramètre INI en définissant

 php_value auto_prepend_file none 

vous devez donc veiller à ne pas accepter les noms de fichiers pour les fichiers téléchargés de l’utilisateur sans filtrage, par exemple.

Mon journal Apache montre les tentatives d’access à mon serveur comme celui-ci (IP masqué):

??. ??. ??. ?? – – [10 / Sep / 2012: 05: 16: 29 +0200] “POST /?-d%20allow_url_include%3DOn+-d%20auto_prepend_file%3D../ ../../../../ .. /../../../../../../etc/passwd%00%20-n/?-d%20allow_url_include%3DOn+-d%20auto_prepend_file%3D../ ../ .. /../../../../../../../../../etc/passwd%00%20-n HTTP / 1.1 “301 895” – “” Mozilla / 5.0 ”

Cela indique clairement que les pirates utilisent auto_prepend_file et allow_url_include.