停止针对给定参数触发 CRS 规则

Stop CRS rule from triggering for a given argument

我是 OWASP ModSecurity 的绝对新手,如果这是一个简单的问题,请原谅!目前,对于图片上传功能,我收到一堆如下“警告”:

ModSecurity: Warning. Matched "Operator Rx' with parameter (?i)\s\S\b' against variable ARGS:json.ImageBytes' (Value: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4gv4SUNDX1BST0ZJTEUAAQEAAAvoAAAAAAIAAABtbnRyUkdCI (474171 characters omitted)' ) [file "/etc/modsecurity.d/owasp-crs/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf"] [line "139"] [id "941130"] [rev "2"] [msg "XSS Filter - Category 3: Attribute Vector"] [data "Matched Data: ;base64 found within ARGS:json.ImageBytes: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4gv4SUNDX1BST0ZJTEUAAQEAAAvoAAAAAAIAAABtbnRyUkdCIFhZWiAH2QADABsAFQAkAB9hY3NwAAA (474141 characters omitted)"] [severity "2"] [ver "OWASP_CRS/3.0.0"] [maturity "1"] [accuracy "8"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-xss"] [tag "OWASP_CRS/WEB_ATTACK/XSS"] [tag "WASCTC/WASC-8"] [tag "WASCTC/WASC-22"] [tag "OWASP_TOP_10/A3"] [tag "OWASP_AppSensor/IE1"] [tag "CAPEC-242"] [hostname "XX.XXX.X.XX"] [uri "/emps/api/emps/UpdateImage"] [unique_id "160217346360.547876"] [ref "o15,7v29,474271t:utf8toUnicode,t:urlDecodeUni,t:htmlEntityDecode,t:jsDecode,t:cssDecode,t:removeNulls"]

我需要防止规则 941130 在参数 (ARGS) 为“json.ImageBytes”的情况下触发。

我不想完全排除规则,但我试图让 ModSecurity 在指定参数的情况下忽略。

也许还有 - 有没有办法通过 URI ("/emps/api/emps/UpdateImage") 做到这一点?

到目前为止我已经尝试过:

SecRuleUpdateTargetById 941130 !ARGS:json.ImageBytes

但无济于事。

如有任何帮助,我将不胜感激!

根据给定的信息,您可以创建排除规则 - 只需输入 REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf

规则是这样的:

SecRule REQUEST_URI "@beginsWith /emps/api/emps/UpdateImage" \
    "id:9000901,\
    phase:1,\
    t:none,\
    nolog,\
    pass,\
    ctl:ruleRemoveTargetById=941130;ARGS:json.ImageBytes"

或类似的东西。