【问题标题】:Set mod_security to detectionOnly for a specific page?将 mod_security 设置为 detectionOnly 用于特定页面?
【发布时间】:2016-12-01 21:44:17
【问题描述】:

如果整个网站的 mod_security 设置为 ON,有没有办法可以将特定页面设置为 detection_only?

用例是应用程序用于配置网站,使用CSS或js很常见,但很可能使modsecurity抛出XSS规则异常。我只想在这些页面上检测这些异常但不阻止它们。但是在所有其他页面上,我希望阻止规则例外。

更多细节:该应用程序实际上是在另一个 Windows 服务器上运行的 IIS 应用程序,而 mod_security 在 linux 服务器上的 Apache 中运行。 haproxy 将传入的请求定向到 apache,apache 通过 modsecurity 接受请求;如果通过,它会将其反向代理回 haproxy,然后将其传递给 IIS。

== incoming request ==> haproxy ==> apache 
                                      v
                                    mod_security
                                      v
        IIS machine <== haproxy <== mod_proxy

(是的,使用 haproxy 是有充分理由的。我们有数百个 https 证书,我们可以将 haproxy 指向一个装满它们的文件夹,它会根据 SNI https 请求选择正确的一个。还没有找到其他可以做到这一点的东西。)

所以在 apache 端没有 .htaccess 文件有意义的目录,至少在我的小脑袋里是这样。

被视为 DetectionOnly 的路径将匹配主机 admin.mysite.com 和路径 ^/site/[a-zA-Z0-9-]+/Settings$

【问题讨论】:

    标签: apache mod-security2 web-application-firewall


    【解决方案1】:

    这样的东西应该可以工作(未经测试):

    SecRule REQUEST_HEADERS:Host "@streq admin.mysite.com" "phase:1,id:1234,chain"
        SecRule REQUEST_URI "^/site/[a-zA-Z0-9-]+/Settings$" "ctl:ruleEngine=DetectionOnly"
    

    只需在任何其他规则之前添加该规则,并确保 id 是唯一的(我以 1234 为例)。

    规则引擎将为下一个请求重置,因为 ctl 更改仅针对此请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-14
      • 2012-01-18
      • 2019-03-24
      • 1970-01-01
      • 1970-01-01
      • 2018-03-27
      • 1970-01-01
      相关资源
      最近更新 更多