【问题标题】:firefox url rewriting mysteriously, but not other browsersfirefox url 神秘地重写,但其他浏览器没有
【发布时间】:2012-07-29 22:48:32
【问题描述】:

我有一个奇怪的问题,它(到目前为止)只在 Firefox 中表现出来,它将 URL 重写到不同的域(也由我们托管)。然而,在 Safari 或 Chrome 中不会发生重写(我正在使用 MacBook Pro 进行测试)。

我的设置是这样的:运行 HAProxy 的负载均衡器在 80 和内部 8080 上侦听,Apache 在 443 上侦听。80 上的流量被传递到后端,来自 Apache 的流量经过 SSL 解密,然后发送到 localhost:8080,然后传递到后端的端口 8443。在后端,来自 80 的任何流量都被认为是非 SSL,但在 8443 上被认为是解密的 SSL。后端服务器正在运行 Apache。

如果我从 SSL 站点上的任何浏览器访问 https://www.sslexample.com/(以下简称 SSL_DOMAIN),一切都会正常运行。它命中 Apache SSL 加速器,被解密,传递给代理,然后发送到后端。如果我再次访问http://www.nonsslexample.com/(以下称为 NONSSL_DOMAIN),那么对于非 SSL 站点,一切都按预期运行,它会访问代理,然后是后端,并且非 SSL 流量会按预期提供。

这就是事情变得奇怪的地方。如果我通过 http 访问 SSL_DOMAIN,那么我应该会被重定向到 https。对于我们的混合 SSL/非 SSL 域之一,这在所有浏览器中都可以正常工作。但是在 Firefox 上(有时在我的同事的 Safari 上,从不在 Chrome 上)如果我通过 http 访问 SSL_DOMAIN,首先发生的事情是 URL 立即重写为 NONSSL_DOMAIN 并且我被重定向到完全不同的域。

嗯?

查看 LB 上的日志,Chrome 和 Safari 的行为正常——在端口 80 上命中 lb——但 Firefox 从未在端口 80 上使用 SSL_DOMAIN 命中负载均衡器。但是 LB 看到它的时间是已经重写了。

我在 Firefox 上安装了 Tamper Data 插件,结果让我更加困惑。初始正确的 URL 标头永远不会收到回复标头。它立即被错误的替换。事情继续进行,就好像我打算使用非 SSL URL。

我查看了我的 /etc/hosts 文件(因为这是在测试中,我们正在覆盖这些域),一切看起来都是正确的。

如果您以前遇到过这样的问题,我将非常感谢有关如何调试它的提示。

【问题讨论】:

  • 您被重定向到哪个域?听起来很可疑。恶意软件。
  • 你用 301 rdirect 代替 302 吗?使用 301 浏览器不需要重新请求他已经完成的事情。尝试退出浏览器,为 302 删除 301 并重新检查篡改数据和实时 http 标头。
  • 尽管我讨厌它,但它似乎是 MacOS 上的 Firefox 孤立的问题。我无法从我们的网络内部或外部复制 Windows 或 Linux 上的问题。我在本地主机上运行了 wireshark,在(错误的)firefox 情况下,重写发生在任何网络流量发生之前,然后获取了错误的网站。
  • 另外,DarkXphenomenon,我被重定向到我们自己的其他非 SSL 域。你认为我们的服务器上有恶意软件吗?

标签: apache firefox redirect ssl haproxy


【解决方案1】:

regilero 是对的。

我刚刚在 Mac OS X 10.9.1 上使用 Firefox 和 Safari 时遇到了同样的问题。它们似乎都缓存了 301 重定向,并在对曾经重定向的 URL 的下一次请求时在内部重写。

这很有趣,尤其是当您尝试在网络服务器配置中编写和测试重定向时。

我的解决方案是清空浏览器缓存。然后将再次从服务器读取重定向。每次我希望重新读取重定向时,我都必须这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2017-08-25
    相关资源
    最近更新 更多