Определить, установлен ли Mod_Security с PHP? - PullRequest
5 голосов
/ 06 июля 2010

Есть ли какой-нибудь простой способ определить, установлена ​​ли и включена ли mod_security только с помощью PHP?В идеале без каких-либо exec () команд типа терминала для выполнения.

Некоторые люди рекомендовали использовать apache_get_modules (), но этот конкретный веб-хостинг не позволяет его показывать.Это также упоминается другими пользователями здесь: http://www.devcomments.com/apache_get_modules-solution-to130703.htm

Ответы [ 4 ]

4 голосов
/ 06 июля 2010

Попробуйте функцию apache_get_modules , чтобы получить массив загруженных модулей. Если этот модуль загружен, но его нет в списке, вы можете попробовать phpinfo с phpinfo(INFO_MODULES) вместо:

ob_start();
phpinfo(INFO_MODULES);
$contents = ob_get_clean();
$moduleAvailable = strpos($contents, 'mod_security') !== false;
3 голосов
/ 23 августа 2013

Вы можете просто создать файл test.php и использовать ..

<?php phpinfo(); ?>

И посмотрите на apache2handler и посмотрите: Загруженные модули ... что-то вроде этого ...

http://gyazo.com/bcba303469f23671f7213e1478788cbd.png

-Майк

2 голосов
/ 06 июля 2010

Здесь хватается за соломинку.

Попробуйте, чтобы ваш скрипт сделал запрос самому себе (через file_get_contents или, возможно, расширение cURL), который отключит mod_security.Если он возвращает 403 (или любой другой ответ mod_security по умолчанию), этого должно быть достаточно для продолжения ...

0 голосов
/ 07 ноября 2018

Вы можете выполнить поиск в функции get_loaded_extensions () и использовать array_intersect (), которая будет возвращать совпадающие значения в массиве или в пустом массиве, если не найдет ничего подходящего.

...