我可以依赖Referer HTTP标头吗?

bod*_*ydo 35 http-referer http-headers

我可以Referer在Web应用程序中依赖HTTP标头吗?我想检查用户是否来自特定的域/网页,如果他或她做了,那么相应地更改我的网站的布局.

我知道人们可以Referer在他们的浏览器中禁用.任何想法用户经常这样做?我可以依靠Referer99%的存在吗?

jos*_*nez 33

作为一般规则,你应该信任HTTP引用头的重要性的任何事项,除了谁是你的访客或寻找自己的网站的用户之间的行为模式时,纯信息的统计分析.

在任何情况下都不建议您将此标头用于AAA(身份验证,授权和记帐),除非如上所述,您认为会计是对访问者行为的简单流量分析.

OWASP(开放Web应用程序安全项目)认为它是一个"漏洞" ,在Web应用程序中使用AAAReferer标头.

不信任Referer Header的其他一些更具体的原因包括:

  • 通常,当从HTTP < - > HTTPS(TLS)连接"链接"时,大多数标准Web浏览器都不会通知此标头.

  • 出于隐私原因,许多公司代理配置为删除/删除此标头,因此即使Web浏览器发送此标头,公司代理软件也可能会将其删除.

  • 在野外安全解决方案中,恶意软件,嵌入到应用程序中的浏览器......已知会修改和/或欺骗此标头的内容.

请注意:

  • 当从HTTPS"链接"到HTTPS时,即使更改域名或网络地址目的地,大多数标准Web浏览器也会通知此标头.


小智 2

只要在没有可用值时有合理的默认行为,并且您没有基于它做任何敏感的事情,就可能没问题。

恶意用户可以将该标头设置为他们想要的任何内容。我预计大多数用户不会修改其浏览器的默认行为,因此它可能在大多数情况下都存在且准确。

在某些情况下,HTTPS 和 HTTP 之间的切换可能会导致引用标头无法发送。

  • 您基本上在这里重申了问题本身。 (6认同)