WordPress的mod_security2规则

时间:2014-01-31 14:59:49

标签: wordpress mod-security mod-security2

对于使用WordPress网站的服务器,是否有任何标准(?!)mod_security2规则? 我想说明我不想禁用 mod_security2(它存在的原因很充分)。我只是想在使用WordPress安装时让我的生活更轻松。

我已经阅读了这个http://wpsecure.net/2012/01/using-mod_security-2-with-wordpress/但是很高兴听到已经使用 mod_security2 &的 WordPress的

因为我不是这方面的专家,是否有任何文件可以阅读以下内容......

<LocationMatch "/wp-admin/post.php">
  SecRuleRemoveById 300015 300016 300017 950907 950005 950006 960008 960011 960904 959006
  SecRuleRemoveById phpids-17
  SecRuleRemoveById phpids-20
  SecRuleRemoveById phpids-21
  SecRuleRemoveById phpids-30
  SecRuleRemoveById phpids-61
</LocationMatch>

<LocationMatch "/wp-admin/admin-ajax.php">
  SecRuleRemoveById 300015 300016 300017 950907 950005 950006 960008 960011 960904 959006
  SecRuleRemoveById phpids-17
  SecRuleRemoveById phpids-20
  SecRuleRemoveById phpids-21
  SecRuleRemoveById phpids-30
  SecRuleRemoveById phpids-61
</LocationMatch>

<LocationMatch "/wp-admin/page.php">
  SecRuleRemoveById 300015 300016 300017 950907 950005 950006 960008 960011 960904
  SecRuleRemoveById phpids-17
  SecRuleRemoveById phpids-20
  SecRuleRemoveById phpids-21
  SecRuleRemoveById phpids-30
  SecRuleRemoveById phpids-61
</LocationMatch>

<LocationMatch "/wp-admin/options.php">
  SecRuleRemoveById 300015 300016 300017 950907 950005 950006 960008 960011 960904 959006
  SecRuleRemoveById phpids-17
  SecRuleRemoveById phpids-20
  SecRuleRemoveById phpids-21
  SecRuleRemoveById phpids-30
  SecRuleRemoveById phpids-61
</LocationMatch>

<LocationMatch "/wp-admin/theme-editor.php">
  SecRuleRemoveById 300015 300016 300017 950907 950005 950006 960008 960011 960904 959006
  SecRuleRemoveById phpids-17
  SecRuleRemoveById phpids-20
  SecRuleRemoveById phpids-21
  SecRuleRemoveById phpids-30
  SecRuleRemoveById phpids-61
</LocationMatch>

<LocationMatch "/wp-content/plugins/">
  SecRuleRemoveById 300015 340151 1234234 340153 1234234 300016 300017 950907 950005 950006 960008 960011 960904 959006
  SecRuleRemoveById phpids-17
  SecRuleRemoveById phpids-20
  SecRuleRemoveById phpids-21
  SecRuleRemoveById phpids-30
  SecRuleRemoveById phpids-61
</LocationMatch>

<LocationMatch "/wp-includes/">
  SecRuleRemoveById 960010 960012 950006 959006
  SecRuleRemoveById phpids-17
  SecRuleRemoveById phpids-20
  SecRuleRemoveById phpids-21
  SecRuleRemoveById phpids-30
  SecRuleRemoveById phpids-61
</LocationMatch>

<LocationMatch "/wp-content/themes/">
  SecRuleRemoveById 340151 340153 1234234 950006 959006
  SecRuleRemoveById phpids-17
  SecRuleRemoveById phpids-20
  SecRuleRemoveById phpids-21
  SecRuleRemoveById phpids-30
  SecRuleRemoveById phpids-61
</LocationMatch>

<LocationMatch "/wp-cron.php">
  SecRuleRemoveById 960015
</LocationMatch>

<LocationMatch "/feed">
  SecRuleRemoveById 960015
</LocationMatch>

<LocationMatch "/category/feed">
  SecRuleRemoveById 960015
</LocationMatch>

谢谢。

1 个答案:

答案 0 :(得分:1)

据我所知,没有可用的公共/免费规则集,其中包含Wordpress的特殊规则集。 wordpress的商业规则集可以从AtomicorpTrustwave获得,但实际上我没有使用/测试它们。

如果您不希望全局包含配置,那么您发布的配置应包含在Apache2 Web服务器的配置中或每个虚拟主机的配置中。

LocationMatch是来自Apache2网络服务器的指令 - 请参阅:http://httpd.apache.org/docs/2.2/en/mod/core.html#locationmatch

SecRuleRemoveById是来自mod_security2 https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-SecRuleRemoveById的指令,它通过ID禁用一个或多个规则

将两者结合在一起,配置的第一行确实删除mod_security2规则,其中包含与“/wp-admin/post.php”匹配的所有URL的给定ID(这是负责管理Wordpress后端中的博客帖子的脚本) )。

总而言之,配置会禁用多个Wordpress脚本的很多mod_security2 / OWASP规则。

我对当前版本的mod_security2和Wordpress的体验如下:

有一个月我和你现在情况相似。我已经有一个运行Apache2的web服务器,其中包含mod_security2和OWASP核心规则集。网络服务器只托管了一些我很高兴的小型Wordpress网站,mod_security2阻止了针对Wordpress的多次自动攻击。

然后我不得不将mod_security2更新到最新版本,这也需要将OWASP核心规则集更新到最新版本。新版本的OWASP核心规则集导致了Wordpress的许多mod_security2误报,所以我来到你在问题中提到的同一篇文章。经过几个小时的调试后,我得出结论,文章(来自2012年)似乎过时并且mod_security2和Wordpress的开发到目前为止,所显示的排除规则该文章不适合新版本的mod_security2 / OWASP核心规则集和Wordpress。

我尝试创建自己的规则集,但实际上在经过数小时的工作后放弃了,因为我必须禁用OWASP核心规则集附带的太多规则(例如,由于误报,禁用了许多SQL注入检查),这实际上删除了mod_security2和OWASP核心规则集的许多安全优势。