为什么网站需要引用标题(并且无声地失败)?

时间:2015-12-13 00:50:38

标签: http-referer referer

我最近注意到一种非常古怪的趋势,我对它感到困惑。在过去的一两个月里,我开始注意到没有引用标题的网站破坏。

作为背景:你当然要记得那些古老的日子里,referer标题被误用来做一大堆事情,从特征检测到一些误导的安全外观。仍然有一些遗留站点依赖于它,但是大多数情况下,引用标题已经降级为糟糕的设备检测。

想象一下,如果不是一个人,我会感到惊讶,但是三个现代网站在没有引用者的情况下突然崩溃。

  1. Codepen:笔预览和完整页面浏览只是休息(i.imgur.com/3abXqsC.png)。但是编辑器视图效果很好。

  2. Twitter:基本上每个互动功能都会中断。如果您尝试推文,转推,收藏等,您会得到一般的无描述性错误(i.imgur.com/E6tIKFo.png)。如果你试图更新一个设置,它就会拒绝(403)(i.imgur.com/51e2d0M.png)。

  3. Imgur:它无法上传任何内容(i.imgur.com/xCWpkGX.png)并最终放弃(i.imgur.com/iO2UlR6.png).

  4. 这三个都是现代网站。自从我开始使用它以来,Codepen已经破了,所以我不确定它是否总是那样,但Twitter和Imgur 过去工作得非常好没有引用者。事实上我只是注意到Imgur打破了。

    此外,它们都只生成非描述性错误消息,如果有的话,根本不会识别问题。我花了大量的试验和错误才能弄清楚前两次,现在我尝试将referer标题作为第一件事之一。可是等等!还有更多!取消它们所需要的只是发送一个通用的引用者,它是主机的根(即twitter.com,codepen.io,imgur.com)。您甚至不需要在目录路径中使用实际的URL!

    一个网站,我可以把它写成糟糕的代码。但是,三个主要的现代网站 - 特别是当他们以前工作时 - 是一个巨大的头脑。

    还有其他人注意到这种趋势还是知道wtf正在发生?

1 个答案:

答案 0 :(得分:2)

虽然Referer标题不会添加安全性"但它们可用于修剪来自浏览器(通过引用规则播放)调用请求的尝试。它没有使网站安全"从任何 HTTP尝试,但它是一个公平的过滤器(代表,可能是毫无戒心的用户)代理作为代理。

以下是一些可能性:

  1. 可以防止被劫持(或网络钓鱼)的用户和/或其他注入攻击形式的POSTS(非幂等请求),which are not constrained to Same-Origin Policy
  2. Some requests can leak a little bit of information, event with Same-Origin Policy
  3. 限制第三方使用嵌入内容,例如iframe,视频/图片和其他热链接。
  4. 也就是说,虽然它绝对不应被视为最后一道防线(例如,它不应取代正确的身份验证和CSRF令牌),但它确实有助于减少浏览器中不受欢迎的访问的曝光