Этот вопрос является продолжением другого здесь (Установка Symfony Framework 406 Ошибка недопустима с CPanel & WHM), пожалуйста, прочитайте мой ответ там, чтобы увидеть, как я решил проблему.
Я смог решить проблему, возникшую у меня с ошибками 406, но за определенную плату … мне пришлось отключить защиту модов в WHM, что, я уверен, является огромной уязвимостью в безопасности. У меня вопрос, как я могу оставить мод безопасности включенным и по-прежнему работать с установкой Symfony по умолчанию, чтобы я больше не получал 406 ошибок?
РЕДАКТИРОВАТЬ
ModSecurity Logs
Запрос: GET / Описание действия: Доступ запрещен с кодом 406 (этап 4). Обоснование: сопоставление с шаблоном «^ 5 \ d {2} $» в RESPONSE_STATUS
Фон
ModSecurity — это брандмауэр веб-приложений (или WAF). Вы можете определить правила, чтобы попытаться идентифицировать и заблокировать незаконные запросы. Хотя WAF не идеальны, и часто используются общие правила, которые работают на «большинстве сайтов», но иногда блокируют законные запросы (известные как ложные срабатывания).
Первое, что нужно понять, это то, что никто не будет знать, какие правила ModSecurity вы установили, кроме вас. ModSecurity не поставляется с какими-либо правилами, хотя есть и доступные для скачивания правила, например, бесплатные OWASP CRS) чтобы заплатить за таких, как атомное) или вы можете написать свой собственный. Итак, первое, что вам нужно объяснить, это то, что никто не сможет рассказать вам, как решить эту проблему, так как она может зависеть от вас в зависимости от вашей установки. Сказать, что мы можем помочь вам найти собственное решение.
Запуск WAF дает дополнительную защиту, но требует большого обслуживания. Хотя мне лично это нравится и я вижу в этом достоинства, большинство сайтов живут без него, если честно, и редко (хотя и не случайно) хакеры делают это в любом случае, если вы обновляете свое программное обеспечение и не устанавливаете программное обеспечение, которое высокая цель (WordPress, например). Вам решать, стоит ли сохранять его в зависимости от того, насколько критичным и безопасным должен быть ваш веб-сайт, но, если вы действительно хотите его использовать, вам нужно будет понять, как он работает для решения подобных проблем.
Твоя проблема.
Я не знаком с Symfony, но из того, что я могу понять, когда ModSecurity включен, ваше приложение дает сбой, и по крайней мере одно правило ModSecurity срабатывает. Когда ModSecurity выключен, все работает нормально.
Итак, прежде всего вам необходимо выяснить, ВСЕ правила, которые мешают вашим приложениям работать. Вы дали одно правило, но я подозреваю, что это не единственная блокировка.
Это правило, как я уже обсуждал в комментариях к вашему первоначальному вопросу, является довольно стандартным правилом в большинстве наборов правил, чтобы попытаться предотвратить утечку информации. Все веб-серверы отвечают 3 цифрами код состояния за каждый запрос. Наиболее известным является 404 или «страница не найдена». Значения в диапазоне 500 означают ошибку сервера. Таким образом, это правило гласит, что если сервер отвечает (RESPONSE_STATUS) шаблоном, совпадающим с «^ 5 \ d {2} $» (т. Е. 5XX, где X — это цифра, поэтому 0-9), то что-то пошло не так, и ModSecurity переходит к предотвратить любые сообщения об ошибках, возвращаемые пользователю, и вместо этого отправляет собственное сообщение об ошибке 406.
ModSecurity имеет 5 фаз:
Это правило срабатывает на этапе 4, когда запрос отправляется обратно клиенту. Таким образом, на данном этапе что-то пошло не так, чтобы ваше приложение вернуло статус 5XX.
Я подозреваю, что другое правило ModSecurity сработало ранее (правило фазы 1 или фазы 2), которое вызвало ошибку, и вы показали только последнее правило, которое сработало.
Прежде чем я смогу помочь вам в решении вашей проблемы, мне нужно знать:
С этим я или кто-то еще, возможно, смогу указать вам правильное направление.
Как вы можете самостоятельно диагностировать эту проблему (и будущие проблемы!)
На вашем месте я бы предпринял следующие шаги для выявления проблемы:
Справочное руководство по ModSecurity это очень полезный ресурс для понимания ModSecurity.
Я также могу порекомендовать руководство по ModSecurity для дальнейшего чтения. Он был написан первоначальным автором ModSecurity и, хотя он не обновлялся с версии 2.7, он все еще является отличным вступлением.
Надеюсь, это поможет,
Барри
Других решений пока нет …