Вопрос по php – Mod_security иногда блокирует мой ajax-скрипт - как я могу узнать почему?

1

Я создал какое-то приложение CMS с использованием php и mysql. Все отлично работает на локальном хосте, поэтому я перенес его в Интернет. Теперь у меня возникают странные проблемы, когда кто-то добавляет новую статью. Иногда он просто добавляется нормально, а иногда пользователь получает эту ошибку:

Not Acceptable An appropriate representation of the requested resource /path_to/file.php could not be found on this server.

Через некоторое время в Google я обнаружил, что mod_security блокирует мой скрипт (или что-то в этом роде). Могу ли я понять, почему он блокирует мой скрипт?

Я не очень хорошо знаком с mod_security, но, насколько я понимаю, он призван обеспечить другой уровень безопасности для веб-приложений путем применения некоторых правил. Так можно ли узнать, какое правило блокирует мое приложение, чтобы я мог это исправить?

Некоторая дополнительная информация:

/path_to/file.php (файл, в котором происходит ошибка «Недопустимо») - это файл .php, который используется только с AJAX. Я отправляю ему некоторые данные через POST, а также отправляю некоторые файлы (изображения, текстовые документы и т. Д.). Лимит загрузки файлов на сервер составляет 20 МБ. В настоящее время я отправляю 17 изображений (около 10 МБ), и это все еще не удается (я получаю сообщение Не приемлемо). Но я также пытался отправить только одну фотографию и документ, и это сработало без проблем.

РЕДАКТИРОВАТЬ: Я использую общий хост (с CPanel).

Ваш Ответ

2   ответа
1

mod_security может регистрировать все блоки в файле журнала. В этом лог-файле вы можете увидеть, какое именно это было правило.

Error: User Rate Limit Exceeded xx77aBs
Error: User Rate Limit Exceeded
1

В большинстве случаев я использую файл журнала, как указано Эмилем.

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).

Похожие вопросы