Modsecurity:为 REQUEST_HEADERS:Transfer-编码创建 SecRule 排除
Modesecurity: Create SecRule exclusion for REQUEST_HEADERS:Transfer-Encoding
我想创建一个排除项来禁用我系统中的特定规则 (ID:920180)。我应该如何在 REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
中编写语法
这是我的排除,但我不确定是否完全覆盖以禁用它:
SecRule REQUEST_HEADERS:Transfer-Encoding "@eq 0" "id:91001,phase:1,msg:'POST without Content-Length or Transfer-Encoding headers',pass,nolog,noauditlog,ctl:ruleRemovebyID=920180"
我要排除的错误:
ModSecurity: Warning. Matched "Operator `Eq' with parameter `0' against variable `REQUEST_HEADERS:Transfer-Encoding' (Value: `0' ) [file "/etc/nginx/modsecurity/coreruleset/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf"] [line "222"] [id "920180"] [rev ""] [msg "POST without Content-Length or Transfer-Encoding headers"] [data "HTTP/1.1"] [severity "4"] [ver "OWASP_CRS/3.3.0"] [maturity "0"] [accuracy "0"] [hostname "127.00.00.00"] [uri "/sample/api"] [unique_id "3562345"] [ref "v7,4"]
这是文档 ID 中的实际规则:920180。
https://github.com/SpiderLabs/owasp-modsecurity-crs/blob/v3.0/master/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf#L280
您的排除规则几乎是正确的。但是REQUEST_HEADERS:Transfer-Encoding
前面的&
不见了
&REQUEST_HEADERS:Transfer-Encoding
(带符号)计算 Transfer-Encoding headers.
的数量
如果没有 &
(& 符号),Transfer-Encoding header 的内容将与值 0
.
进行比较
我不确定您是否真的要删除一般不存在的 Transfer-Encoding header 规则,或者您是否想将此限制为某些客户端(IP 地址、用户代理) ,...)。但那是你的决定。我不知道你到底需要什么。
但无论如何,此排除规则现在将起作用。
顺便说一句:当前的 OWASP 核心规则集存储库是 https://github.com/coreruleset/coreruleset/。
我想创建一个排除项来禁用我系统中的特定规则 (ID:920180)。我应该如何在 REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
中编写语法这是我的排除,但我不确定是否完全覆盖以禁用它:
SecRule REQUEST_HEADERS:Transfer-Encoding "@eq 0" "id:91001,phase:1,msg:'POST without Content-Length or Transfer-Encoding headers',pass,nolog,noauditlog,ctl:ruleRemovebyID=920180"
我要排除的错误:
ModSecurity: Warning. Matched "Operator `Eq' with parameter `0' against variable `REQUEST_HEADERS:Transfer-Encoding' (Value: `0' ) [file "/etc/nginx/modsecurity/coreruleset/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf"] [line "222"] [id "920180"] [rev ""] [msg "POST without Content-Length or Transfer-Encoding headers"] [data "HTTP/1.1"] [severity "4"] [ver "OWASP_CRS/3.3.0"] [maturity "0"] [accuracy "0"] [hostname "127.00.00.00"] [uri "/sample/api"] [unique_id "3562345"] [ref "v7,4"]
这是文档 ID 中的实际规则:920180。 https://github.com/SpiderLabs/owasp-modsecurity-crs/blob/v3.0/master/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf#L280
您的排除规则几乎是正确的。但是REQUEST_HEADERS:Transfer-Encoding
前面的&
不见了
&REQUEST_HEADERS:Transfer-Encoding
(带符号)计算 Transfer-Encoding headers.
如果没有 &
(& 符号),Transfer-Encoding header 的内容将与值 0
.
我不确定您是否真的要删除一般不存在的 Transfer-Encoding header 规则,或者您是否想将此限制为某些客户端(IP 地址、用户代理) ,...)。但那是你的决定。我不知道你到底需要什么。
但无论如何,此排除规则现在将起作用。
顺便说一句:当前的 OWASP 核心规则集存储库是 https://github.com/coreruleset/coreruleset/。