5

我创建了一个流行的 Wordpress 插件,但我收到很多抱怨它不起作用。在登录到许多用户的 WP 网站后(在询问管理员密码后),我注意到我无法轻易解决的最后一个问题是 mod_security 和 mod_security2 阻止了一些 AJAX 请求或 .htaccess,这在某些配置上导致 500 错误。

所以首先为什么这段代码会导致一些服务器返回 500 错误

<IfModule mod_security2.c>
  SecRuleRemoveById 300015
  SecRuleRemoveById 300016
  SecRuleRemoveById 300017
  SecRuleRemoveById 950907
  SecRuleRemoveById 950005
  SecRuleRemoveById 950006
  SecRuleRemoveById 960008
  SecRuleRemoveById 960011
  SecRuleRemoveById 960904
  SecRuleRemoveById phpids-17
  SecRuleRemoveById phpids-20
  SecRuleRemoveById phpids-21
  SecRuleRemoveById phpids-30
  SecRuleRemoveById phpids-61

在其他服务器上通过 id 删除规则会导致 500 错误:

<IfModule mod_security.c>
  SecRuleRemoveById 300015
  ...
  SecRuleRemoveById phpids-61
</IfModule>

所以现在唯一不会导致任何服务器崩溃的工作是

<IfModule mod_security.c>
  SecFilterEngine Off
  SecFilterScanPOST Off
</IfModule>

但是对于带有 mod_security2 的服务器来说还不够!

如何编写跨服务器 .htaccess 文件,以及我应该添加哪些 IF 条件来禁用 mod_security 和 mod_security2 在任何适用的地方并且不会在其他配置上导致 500 错误?

编辑:不仅在 Apache 中。使用 .htaccess 的任何地方。

4

2 回答 2

6

ModSecurity 社区经理 Ryan C. Barnett声称:

对 .htaccess 文件的支持在 2.x 中已停止,因为它引发了太多安全问题。

来源:http ://article.gmane.org/gmane.comp.apache.mod-security.user/3065

在 htaccess 上启用的唯一可能配置如下(自 2.7.3 起),但您需要./configure --enable-htaccess-config

  • SecAction
  • 安全规则

  • SecRuleRemoveByMsg

  • SecRuleRemoveByTag
  • SecRuleRemoveById

  • SecRuleUpdateActionById

  • SecRuleUpdateTargetById
  • SecRuleUpdateTargetByTag
  • SecRuleUpdateTargetByMsg

https://github.com/SpiderLabs/ModSecurity/blob/876d4f5f9558595c00f40af25ea6216386f15cd7/CHANGES#L69

于 2013-10-05T10:44:33.377 回答
0

显示一条消息告诉联系服务器管理员将是最后要做的事情。首先,我将尝试其中一种用于自动创建配置的解决方案:

在子文件夹中创建 2-3 个沙盒 .htaccess 配置

  1. 在插件激活测试期间,使用模拟远程 AJAX 测试一一配置
  2. 从最好的常规设置配置子文件夹开始
  3. 检查此文件夹中的 AJAX 代理脚本调用以及图像、样式等文件的访问权限
  4. 找到成功(解锁且不崩溃)配置后,将选定的 .htaccess 文件保存到包含 AJAX 代理 PHP 文件的文件夹
  5. 如果没有任何配置(或内置 wordpress AJAX 脚本 - 不太可靠)正常运行,则显示错误,告知联系服务器管理员以允许对给定文件夹进行 htaccess

或者

  1. 使用 PHP 检查加载的模块
  2. 仅当 mod_security2 存在时才添加 SecRuleRemoveById id 以防止基本 mod_security 崩溃
于 2013-10-11T16:15:24.190 回答