Что на самом деле означает ARGS, ARGS_NAMES в наборах правил ядра mod_security?Что на самом деле означает ARGS, ARGS_NAMES в mod_security crs?
Я уже упоминал Modsecurity2 Apache Reference, но у меня не было четкой идеи.
Может кто-нибудь дать мне конкретную идею, желательно с объяснением, что это на самом деле и как что-то фактически вызывает правило, как показано ниже.
Правило, приведенное ниже, является положительным для случаев, таких как «x и 6» и т. Д., В общем случае любое «и», за которым следует цифра. В этом случае я понимаю, что такое имя файла запроса. что я не понимаю, это ARGS и ARGS_NAMES. Мне нужен конкретный пример со ссылкой на приведенное ниже правило.
SecRule REQUEST_FILENAME|ARGS_NAMES|ARGS|XML:/* "(?i)\b(?i:and)\b\s+(\d{1,10}|'[^=]{1,10}')\s*[=]|\b(?i:and)\b\s+(\d{1,10}|'[^=]{1,10}')\s*[<>]|\band\b ?(?:\d{1,10}|[\'\"][^=]{1,10}[\'\"]) ?[=<>]+|\b(?i:and)\b\s+(\d{1,10}|'[^=]{1,10}')" \
"phase:2,rev:'2.2.5',capture,t:none,t:urlDecodeUni,ctl:auditLogParts=+E,block,msg:'SQL Injection Attack',id:'959072',tag:'WEB_ATTACK/SQL_INJECTION',tag:'WASCTC/WASC-19',tag:'OWASP_TOP_10/A1',tag:'OWASP_AppSensor/CIE1',tag:'PCI/6.5.2',logdata:'%{TX.0}',severity:'2',setvar:'tx.msg=%{rule.msg}',setvar:tx.sql_injection_score=+%{tx.critical_anomaly_score},setvar:tx.anomaly_score=+%{tx.critical_anomaly_score},setvar:tx.%{rule.id}-WEB_ATTACK/SQL_INJECTION-%{matched_var_name}=%{tx.0}"
Я вижу .. Можете привести пример со ссылкой на правило sec i, упомянутое выше? Мое понимание дает мне что-то вроде, если пара name + value содержит что-то, что соответствует регулярному выражению, тогда оно даст положительный результат. Из того, что вы говорите, я предполагаю, что здесь ARGS будет «именем html textarea: значением текстовой области». Предположим, что вместо того, чтобы вообще удалить правило, если я должен был поставить исключение, я должен сделать a! ARGS: имя поля или! ARGS_NAMES: имя_файла. Второй, по-видимому, несколько логичен для меня. Я новичок в этой работе mod_sec! – Enihr
Обновлено ... надеюсь, что поможет ^^ – Shuro
Большое спасибо за вашу помощь. У меня здесь немного путаницы. Когда вы дали и пример для ARGS, вы дали его как ARGS = «ugly_arg: 345test». Но при создании настраиваемого исключения его^ARGS: ugly_arg ... Ummm, логически не должно быть «ugly_arg: 345test»? Ну, я пробовал, и он не работает нормально ... То, что вы сказали, работает. Мне просто интересно, почему это соглашение .. – Enihr