403发送GET数据时出现禁止错误

Era*_*ray 2 php apache get http http-status-code-403

我的服务器是Linux服务器,而经销商是我的。所以我也可以到达WHM面板。

当GET数据出现时:

a.php?url=http://www.domain.com
Run Code Online (Sandbox Code Playgroud)

返回403禁止。

但是如果数据是这样的:

a.php?url=www.domain.com
Run Code Online (Sandbox Code Playgroud)

它正在工作。

因此,http://生成错误。我该如何解决?

另外,这将返回403 Forbidden:

a.php?url=http%3a%2f%2fwww.domain.com
Run Code Online (Sandbox Code Playgroud)

谢谢。

mar*_*rio 5

这绝对是mod_security CoreRules之一。我以前的主持人也遇到过同样的问题。但是,我不记得规则名称。

您应该研究核心规则版本。2.1.1将是最新的,并且可能已经放松了该特殊的过滤器。如果更新或重新配置无济于事,您将不得不使用base64_encode()您的url参数(简单的编码会被mod_security嗅探)。

SecFilterDebugLog /var/log/apache2/modsec_log
SecFilterDebugLevel 4
Run Code Online (Sandbox Code Playgroud)

启用mod_security的调试日志记录,因此您可以找出实际上是引起该问题的规则-如果要禁用它(建议)。 http://www.modsecurity.org/documentation/modsecurity-apache/1.9.3/modsecurity-manual.html#07-logging