Удаление правила modsecurity через .htaccess - PullRequest
1 голос
/ 15 февраля 2012

Я получаю 500 Internal Server Error при попытке сохранить файл с текстом, который может напоминать SQL-запрос.Поэтому ModSecurity блокирует его:

[client xxx.xxx.xxx.xxx] ModSecurity: Access denied with code 500 (phase 2). Pattern match "(insert[[:space:]]+into.+values|select.*from.+[a-z|A-Z|0-9]|select.+from|bulk[[:space:]]+insert|union.+select|convert.+\\\\(.*from)" at ARGS:description. [file "/usr/local/apache/conf/modsec2.user.conf"] [line "359"] [id "300016"] [rev "2"] [msg "Generic SQL injection protection"] [severity "CRITICAL"] [hostname "xxxxxxxxxxxxx.net"] [uri "/app/3/admin/modules/product/product_a.php"] [unique_id "TzvCxkPj2kkAAH4WkMwAAAAE"]

Поэтому я создаю файл .htaccess в папке / app / 3 / admin / modules / product /

<IfModule mod_security.c>
SecFilterRemove 300015
SecFilterRemove 300016
</IfModule>

Но это не решает проблемупроблема тоже.Я все еще получаю код 500 с записями журнала в файле журнала apache.

Есть идеи, почему это может не сработать?

1 Ответ

2 голосов
/ 15 февраля 2012

Действительно ли проблема заключается в сохранении файла?Мне трудно представить, поскольку это не юрисдикция Apache в Atll.Разве это не запрос, находящийся в строке запроса, вызывает проблемы?

Вы можете обойти , что , например, с помощью base64-кодирования запроса (если увеличение размера на 33% не проверяет ограничения размера URL-адреса), или сохранения запроса в переменной сеансаи передавая только уникальный случайный ключ, указывающий на переменную.

Редактировать: если вы действительно передаете живые запросы SQL, которые позже выполняете - не делайте этого.Именно поэтому существует этот фильтр mod_security.

В любом случае, phpMyAdmin, инструмент управления базами данных, имеет ту же проблему: он передает живые запросы на выполнение.Существует ряд постов, посвященных phpMyAdmin и mod_security. Этот предлагает несколько других идентификаторов фильтров для отключения.(В идеале вы должны делать это только для одного файла, который должен получать данные POST.)

...