服务器进入重定向循环是由于“;坏的”;cookie值


Server entering redirect loop due to "bad" cookie value

我遇到过这样一种情况,在Joomla.php上运行网站的Apache web服务器正在设法使自己进入重定向循环。

访问时http://www.example.com/它正在向http://www.example.com/(是的,相同的url)。

经过一番调查,我们将其缩小到了这样一个事实:有一块饼干的价值让它不喜欢。。。

cookie内容为:

%7B%22distinct_id%22%3A%20%22vp37vvv%22%2C%22%24initial_ferrer%22%3A%20%22%24%24direct%22%2C/22%24%24initial_transfering_domain%22%3A%20%22%24%direct%22%7D

为了节省你的麻烦,这是网址编码和解码:

{"distinct_id":"vp37vv","$initial_referrer":"$direct"、"$initial_ferring_domain":"$direct"}

我的猜测是,有某种"安全"检查正在进行,它在看饼干,不喜欢它在那里看到的东西,并进行重定向,试图摆脱坏的价值。

我注意到,如果我把cookie值放在url中,它会进行类似的重定向。这将是:

http://www.example.com/?c=%7B%22distinct_id%22%3A%20%22vp37vv%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D

导致它重定向到http://www.example.com/(它成功地摆脱了它不喜欢的价值)。使用"安全"查询字符串值进行测试没有导致重定向。

那么问题来了:是什么导致了这种情况,我该怎么做才能阻止它的发生

以任何方式更改cookie都不是一种选择,因为它是第三方软件的一部分——我需要让服务器接受这个cookie的存在。

我的猜测是,这是一个php安全功能,但如果是这样的话,那么我很难找到任何关于它的文档。

有几件事可能会导致这个问题:

  • Joomla安全插件(检查服务器上是否安装了非核心Joomla的安全插件)
  • 正在触发ModSecurity规则(或其他防火墙规则)。如果是这样的话,那么你需要将该规则列入白名单(查看这篇关于如何将ModSecurity规则列入白列表的文章)

我怀疑是后者。