从Https跳转到Http时不传递HTTP_REFERER的解决方案

小歆8年前软件源码03985

问题场景

当http页面通过Referer获取上一个页面的URL时,如果上一个页面是https,则得到的Referer为空。

例如在http页面的PHP代码中使用:$_SERVER['HTTP_REFERER']

得到的结果是:NULL

原因

根据RFC文档:HTTP/1.1: Security Considerations

Clients SHOULD NOT include a Referer header field in a (non-secure) HTTP request if the referring page was transferred with a secure protocol.

在Https -> Http的过程中Referer是不被传递的,而在 Https -> Https 或 Http -> Https 则没有这样的问题。

解决方案

1、Https端解决方案

增加一个Meta头信息,来建议浏览器发送Referer,这并不是HTTP强制要求的,不排除有个别浏览器不去这么做。

<meta content="always" name="referrer">

2、Http端解决方案

只用将全站升级成Https,否则没有办法。

总结

总的来说出现这个问题是HTTP安全性的结果,可以防止Https页面信息以明文暴露出来。综合考虑增加Meta只能作为临时方案(因为牺牲了安全性),长远打算还是将全站升级成Https吧,毕竟Https才是未来。

相关文章

一种高速图像数据采集板的设计方案

一种高速图像数据采集板的设计方案

1.概述 随着图像处理技术的快速发展,图像采集处理系统在提高工业生产自动化程度中的应用越来越广泛。本文结合实际系统中的前端图像处理和图像数据传输的需要,充分利用ARM的灵活性和F...

Altium如何佈蛇形線.jpg

【教程】Altium如何布蛇形线

Altium如何佈蛇形線   下载地址:        本地下载:Altium如何佈蛇形線.pdf  &nb...

XP防止成为“肉鸡”的技术与管理措施

一、防止主机成为肉鸡的安全技术措施 1、利用操作系统自身功能加固系统 通常按默认方式安装的操作系统,如果不做任何安全加固,那么其安全性难以保证。攻击者稍加利用便可使其成为肉鸡。因此,防止主机成...

用VB快速读取TextBox第N行的数据

TextBox 是以 vbCr+vbLf 为分行符号, 如果我们要逐一读取 TextBox 每一行, 无非是寻找 vbCr+vbLf 的所在位置, 然后取出每一行的字串, 不过这个方法不快,而且...

测判三极管的口诀

三极管的管型及管脚的判别是电子技术初学者的一项基本功,为了帮助读者迅速掌握测判方法,笔者总结出四句口诀:“三颠倒,找基极;PN结,定管型;顺箭头,偏转大;测不准,动嘴巴。”下面让我们逐句进行解释...

DIY白光电烙铁 全过程图解

DIY白光电烙铁 全过程图解         下载地址:DIY白光电烙铁 全过程图解(1.87 MB)...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。