Есть ли простой способ определить, установлена ли mod_security и включена ли она с помощью PHP? Идеально, если не выполняются никакие команды типа exec () терминала.
Некоторые люди рекомендовали использовать apache_get_modules (), но этот конкретный веб-хост не позволяет ему показывать. Это также упоминается другими пользователями здесь: http://www.devcomments.com/apache_get_modules-solution-to130703.htm
Попробуйте функцию apache_get_modules
чтобы получить массив загруженных модулей. Если этот модуль загружен, но не указан там, вы можете попробовать phpinfo
с phpinfo(INFO_MODULES)
:
ob_start(); phpinfo(INFO_MODULES); $contents = ob_get_clean(); $moduleAvailable = strpos($contents, 'mod_security') !== false;
Вы можете просто создать файл test.php и использовать ..
<?php phpinfo(); ?>
И посмотрите на apache2handler и посмотрите: Загруженные модули .. что-то вроде этого …
http://img.ruphp.com/php/bcba303469f23671f7213e1478788cbd.png
-Майк
Здесь хватается за соломинку.
Попробуйте, чтобы ваш скрипт сделал запрос самому себе (через file_get_contents
или, возможно, расширение cURL), которое отключило бы mod_security. Если он возвращает 403 (или любой другой ответ mod_security по умолчанию), для этого должно быть достаточно информации для вас, чтобы продолжить …