0

是否有可能在第 1 阶段创建白名单规则以将所有 GET 请求列入白名单?

我的 custom_rule 文件正在运行 - 我之前测试过各种规则,但我真的不知道如何禁用 GET 请求的所有规则。

类似于:SecRule REQUEST_METHOD "GET" "phase:1,log,pass"

4

1 回答 1

0

通过将继续进行下一条规则。你想使用允许

请注意,您可能也不想费心记录此规则,您应该给它一个 id(对于 ModSecurity 2.7 及更高版本是必需的):

SecRule REQUEST_METHOD "GET" "phase:1,id:1000;nolog,allow"

另请注意,允许在 DetectionOnly 模式下不起作用,因为它是一个破坏性规则,这总是让我觉得这是一种不好的处理方式。所以你必须强制规则引擎让它在那里工作。

如果有帮助,我有以下规则允许将静态内容列入白名单(需要根据您的特定环境进行调整):

#Allow any GET & HEAD requests, where no parameters passed, for static content file types
SecRule REQUEST_METHOD "^(GET|HEAD)$" "phase:1,id:'1000',chain,allow,nolog"
  SecRule &ARGS "@eq 0" "chain"
  SecRule REQUEST_FILENAME ".*\.(css|eot|gif|htm|html|jpeg|jpg|js|pdf|png|svg|ttf|woff|woff2)$" "t:lowercase,ctl:ruleEngine=On"

#Allow any GET & HEAD requests, where no parameters passed, for default index files (e.g. /somepage/)
#except for dynamic content urls (which start with api or application):
SecRule REQUEST_METHOD "^(GET|HEAD)$" "phase:1,id:'1001',chain,allow,nolog"
  SecRule &ARGS "@eq 0" "chain"
  SecRule REQUEST_URI "/$" "chain"
  SecRule REQUEST_URI "!^/(api|application)" "t:lowercase,ctl:ruleEngine=On"

如果您对这些有任何疑问,请告诉我。

于 2015-10-26T16:21:08.817 回答