Я создал какое-то приложение CMS, используя php и mysql. Все отлично работает на localhost, поэтому я переместил его в Интернет. Теперь я испытываю странные проблемы, когда кто-то добавляет новую статью. Иногда он просто добавляется нормально, а иногда пользователь получает эту ошибку:
Не приемлемо. Соответствующее представление запрашиваемого ресурса /path_to/file.php не может быть найдено на этом сервере.
Через некоторое время в Google я обнаружил, что mod_security блокирует мой скрипт (или что-то в этом роде). Есть ли способ понять, почему он блокирует мой сценарий?
Я не очень хорошо разбираюсь в mod_security, но, как я понимаю, существует возможность обеспечить еще один уровень безопасности для веб-приложений, применяя некоторые правила. Могу ли я увидеть, какое правило блокирует мое приложение, чтобы я мог его исправить?
Дополнительная информация:
/path_to/file.php (файл, в котором происходит эта недопустимая ошибка) является .php-файлом, который используется только с AJAX. Я отправляю некоторые данные через POST, и я также отправляю некоторые файлы (картинки, текстовые документы и т. Д.). Предел загрузки файлов на сервере составляет 20 МБ. В настоящее время я отправляю 17 фотографий (около 10 МБ), и он все еще не работает (я получаю недопустимую ошибку). Но я также пытался отправить только одну фотографию и документ, и это сработало без проблем.
EDIT: Я использую общий хост (с CPanel).
mod_security может регистрировать все блоки в файле журнала. В этом файле журнала вы можете видеть, в каком именно виде это было.
В большинстве случаев я использую файл журнала, как указал Эмиль.
mod_Security создает два отдельных файла журнала, а также Apache сообщает об ошибке в своих собственных журналах. Оба могут быть полезны. Фактически, если вы обнаружите ошибку в Apache, она должна предоставить вам файл mod_security и номер строки правила, которое помешало бы вашему POST работать.
Теперь в большинстве случаев они обнаружили недопустимый заголовок, как правило, что-то не хватает, что ожидается по протоколу HTTP (хотя они проверяют некоторые вещи, которые не требуются, но есть 99,9% времени).
Из двух файлов, предлагаемых mod_security, маловероятно, чтобы один из них не был создан: файл аудита, который использует очень большой объем дискового пространства при записи всех деталей транзакции на диск.
В случае POST число переменных или неверная определенность переменной является общей ошибкой, обнаруженной mod_security.
В Ubuntu (Debian) файлы журнала заканчиваются под / var / log / apache2 / … (выход Apache) и / var / log / apache2-more / … (mod_security).