如何禁用.htaccess文件中的mod_security?

2021/01/13 17:21 · php ·  · 0评论

我们如何mod_security通过.htaccess在Apache服务器上使用文件来禁用

我在个人域上使用WordPress,并发布了一个帖子,该帖子的内容包含一些代码块,并且根据我的托管服务提供商的说法mod_security,该操作出错并且我的IP由于进入了防火墙mod_security

所以我想mod_security通过使用.htaccess文件来禁用

可以这样做,但是您的主机很可能是mod_security出于某种原因实施的。确保他们同意您为自己的网站禁用它。

也就是说,这应该做到;

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

某些服务器和Web主机上,可以通过禁用ModSecurity .htaccess,但只能全部禁用-您不能禁用单个规则。

与其在整个站点上都禁用它,不如将其限制为特定的URL。您可以在<If>下面语句中通过正则表达式指定要匹配的网址...

### DISABLE mod_security firewall
### Some rules are currently too strict and are blocking legitimate users
### We only disable it for URLs that contain the regex below
### The regex below should be placed between "m#" and "#" 
### (this syntax is required when the string contains forward slashes)
<IfModule mod_security.c>
  <If "%{REQUEST_URI} =~ m#/admin/#">
    SecFilterEngine Off
    SecFilterScanPOST Off
  </If>
</IfModule>

只是为了更新有关mod_security 2.7.0+的问题,他们关闭了通过htaccess缓解modsec的功能,除非您使用该--enable-htaccess-config标志对其进行编译大多数主机不使用此编译器选项,因为它允许过于宽松的安全性。相反,httpd.conf中的虚拟主机是控制modsec的首选方法。

即使您确实使用htaccess缓解措施编译了modsec,也可以使用更少的指令。SecRuleEngine例如不能再在那里使用。如果允许,以下是默认情况下可以在htaccess中使用的列表(请注意,主机可能会进一步限制此列表的使用AllowOverride):

    - SecAction
    - SecRule

    - SecRuleRemoveByMsg
    - SecRuleRemoveByTag
    - SecRuleRemoveById

    - SecRuleUpdateActionById
    - SecRuleUpdateTargetById
    - SecRuleUpdateTargetByTag
    - SecRuleUpdateTargetByMsg

官方Modsec Wiki上的更多信息

作为对2.x用户的补充说明:IfModule现在应该寻找,mod_security2.c而不是较旧的mod_security.c

当上述解决方案不起作用时,请尝试以下操作:

<IfModule mod_security.c>
  SecRuleEngine Off
  SecFilterInheritance Off
  SecFilterEngine Off
  SecFilterScanPOST Off
  SecRuleRemoveById 300015 3000016 3000017
</IfModule>

在站点根目录的.htaccess文件中,编辑以下行:

<ifmodule mod_security.c>

SecFilterEngine Off
SecFilterScanPOST Off

</ifmodule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

只需将SecFilterEngine之类的mod_security规则与各部分彼此分开即可。它适用于Apache服务器

对于包括NameCheap的某些Web主机,无法使用禁用ModSecurity .htaccess唯一的选择是联系技术支持,并要求他们为您更改配置。

对于只想绕过ERROR页面以在共享主机上显示内容的任何人。您可能想尝试在.htaccess文件中使用重定向。如果说是406错误,那么在UnoEuro上,仅停用安全性似乎并不起作用。所以我改用这个:

ErrorDocument 406 /

然后,您始终可以使用PHP更改错误状态。但是请注意,就我而言,这样做意味着我绕过WAF时为SQL注入打开了一扇门。因此,您需要确保您有自己的安全措施或尽快再次启用安全性。

本文地址:http://php.askforanswer.com/ruhejinyong-htaccesswenjianzhongdemod_security.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!