Назад | Перейти на главную страницу

PHP и запуск текстовой области Mod_Security

У меня есть некоторые текстовые области в форме, которые отправляются обратно и хранятся с использованием PHP / MySQL. Однако, если пользователь нажимает клавишу return для новой строки в текстовой области, mod_security блокирует ее следующей записью журнала:

Pattern match "\\W{4,}" at ARGS:notes. [file "/etc/httpd/modsecurity-crs/base_rules/modsecurity_crs_40_generic_attacks.conf"] [line "37"] [id "960024"] [rev "2"] [msg "Meta-Character Anomaly Detection Alert - Repetative Non-Word Characters"] [data "Matched Data: \x0d\x0a\x0d\x0a found within ARGS:notes: This is Test Request #5\x0d\x0a\x0d\x0aThanks"] [ver "OWASP_CRS/2.2.9"] [maturity "9"] [accuracy "8"]

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

Спасибо.

Хорошо поздно, но ....

У вас должен быть набор настраиваемых правил, которые либо предшествуют, либо следуют наборам правил. Обычно, если вы удаляете правила или маршруты, вы делаете это в файле с низким номером CRS. Изменения в наборах правил происходят после файлы CRS.

Мы используем 10 и 65 соответственно.

Что вы должны попытаться сделать, так это создать исключение для конкретной ARG, а не полностью отключать правило, поскольку это снимает защиту.

например, SecRuleUpdateTargetById 960024! ARGS: примечания

https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#SecRuleUpdateTargetById

Попытка: одно поле не требует двойных кавычек, но несколько полей - "! ARGS: notes,! ARGS: q"

Самый простой способ - отключить правило для URL-адреса, получающего POST:

<LocationMatch /URL/path/to/application>
     SecRuleRemoveById 960024
</LocationMatch>