2010-07-05 13 views
5

Existe-t-il un moyen simple de détecter si mod_security est installé & activé en utilisant simplement PHP? Idéalement sans aucune commande de type terminal exec() à exécuter.Détecter si Mod_Security est installé avec PHP?

Certaines personnes ont recommandé d'utiliser apache_get_modules() mais cet hôte Web spécifique ne lui permet pas de s'afficher. Ceci est également mentionné par d'autres utilisateurs ici: http://www.devcomments.com/apache_get_modules-solution-to130703.htm

Répondre

4

Essayez le apache_get_modulesfunction pour obtenir un tableau des modules chargés. Si ce module est chargé, mais pas là dans la liste, vous pouvez essayer phpinfo avec phpinfo(INFO_MODULES) à la place:

ob_start(); 
phpinfo(INFO_MODULES); 
$contents = ob_get_clean(); 
$moduleAvailable = strpos($contents, 'mod_security') !== false; 
+1

Il faut remarquer cela peut être fait seulement si PHP est installé en tant que module Apache. – Artefacto

+0

Cette fonction ne semble pas fonctionner correctement pour tous les hôtes. Certains hôtes semblent ne pas retourner tous les mods apache utilisant cette fonction pour une raison quelconque. Un autre post sur ce sujet: http://www.devcomments.com/apache_get_modules-solution-to130703.htm D'autres idées? – user384030

2

à pailles ici Saisissant. Essayez de demander à votre script de lui faire une demande (via file_get_contents ou peut-être l'extension cURL) qui déclencherait mod_security. Si elle retourne un 403 (ou quelle que soit la réponse par défaut de mod_security est), qui devrait être assez d'informations pour aller en ...

3

Vous pouvez faire tout simplement créer un fichier test.php et l'utilisation ..

<?php phpinfo(); ?> 

et regardez le apache2handler, et regardez: modules Loaded .. quelque chose comme ça ...

http://gyazo.com/bcba303469f23671f7213e1478788cbd.png

-Mike

+2

Cela ne semble pas fonctionner pour PHP-FPM, auquel cas il n'y a pas de bloc Apache2handler – vrijdenker