Использование регулярных выражений при обновлении аргумента в Mod Security Core Ruleset OWASP

Я только что столкнулся с проблемой с правилом 981173[msg "Restricted SQL Character Anomaly Detection Alert - Total] для отправки некоторых идентификаторов YouTube в базу данных. Некоторые идентификаторы имеют специальные символы, такие как -что, я думаю, является причиной предупреждения

Я пытался исключить $_POST ключ video[391][] из правила, где 391 это идентификатор продукта и поэтому это не ключ исправления. Может быть video[500][] или что-то похожее.

я пытался

    SecRuleUpdateTargetById 981173 !ARGS:video[*][]

но это не работает. Любая идея о том, как исключить эту динамику $_POST ключ от правила?

  Message: Access denied with code 403 (phase 2). 
  Pattern match "([\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\+\\=\\{\\}\\[\\]\\|\\:\\;\"\\'\\\xc2\xb4\\\xe2\x80\x99\\\xe2\x80\x98\\`\\<\\>].*?){4,}" 
at ARGS_NAMES:video[391][]. [file "/etc/httpd/crs-tecmint/owasp-modsecurity-crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf"] 
[line "159"] [id "981173"] [rev "2"] 
[msg "Restricted SQL Character Anomaly Detection Alert - Total # of special characters exceeded"] 
[data "Matched Data: ] found within ARGS_NAMES:video[391][]: video[391][]"] [ver "OWASP_CRS/2.2.9"] [maturity "9"] 
[accuracy "8"] [tag "OWASP_CRS/WEB_ATTACK/SQL_INJECTION"]

1 ответ

Решение

Я думаю, что это должно быть:

SecRuleUpdateTargetById 981173 "!ARGS_NAMES:/^video\[.*\]\[\]/"

или если только числовые идентификаторы, то это:

SecRuleUpdateTargetById 981173 "!ARGS_NAMES:/^video\[[0-9]*\]\[\]/"

Смотрите пример регулярного выражения здесь: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual

Другие вопросы по тегам