1

我已使用以下说明安装了 Mod Security:https ://www.digitalocean.com/community/tutorials/how-to-set-up-modsecurity-with-apache-on-ubuntu-14-04-and-debian- 8

它似乎工作正常,但我似乎无法为 WordPress 登录创建异常。我已将以下内容添加到我的虚拟主机文件中:

<Directory "/var/www/domain.com/public_html/wp-admin">
    <IfModule security2_module>
        SecRuleEngine Off
    </IfModule>
</Directory>

我还尝试了以下方法:

<LocationMatch "/wp-admin">
    <IfModule security2_module>
        SecRuleEngine Off
    </IfModule>
</LocationMatch>

以及两者的不同组合。

我正在运行 Ubuntu 16.04.2,但我想它与 14.04 相同,对吧?

4

1 回答 1

5

ModSecurity 在几个不同的阶段运行。第一个阶段在处理任何目录或位置规则之前运行。因此,像这样关闭 ModSecurity 是行不通的,因为当 Apache 开始处理该配置时,为时已晚。

更好的方法是编写一个 ModSecurity 规则来“允许”这些位置:

SecRule REQUEST_URI "@beginsWith /wp-admin" "phase:1,id:12345,allow"

或者动态关闭此请求的其余部分的 ModSecurity(其效果与上述基本相同):

SecRule REQUEST_URI "@beginsWith /wp-admin" "phase:1,id:12345,ctl:ruleEngine=off"

重要的是,在任何其他规则之前定义这些规则中的任何一个,以确保其他规则在上述规则生效之前不会阻止请求。

但是我会说 wp-admin 是 WordPress 网站上最有可能受到攻击的位置之一,所以请注意为什么您会经历安装 ModSecurity 的麻烦,然后决定不使用它来保护该特定 URL!

于 2017-03-16T11:13:52.850 回答