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

小歆10年前软件源码05998

问题场景

当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才是未来。

相关文章

[乱码力作]VBS基础教程

教程目录 1.VBS与VB的故事 2.MsgBox的秘密 3.InputBox的技巧 4.自定义函数(一)...

vb参考资料.jpg

VB编程语言参考手册

VB编程语言参考手册 资源目录: 小歆网盘:VB编程语言参考手册.rar...

软件版本号的英文代码大全

alphal 内部测试版 beta 外部测试版 demo 演示版 Enhance 增强版或者加强版 属于正式版 Free 自由版 Full version 完全版 属于正式版 sharew...

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

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

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

PCB布线的地线干扰与抑制方法

1.地线的定义 什么是地线?大家在教科书上学的地线定义是:地线是作为电路电位基准点的等电位体。这个定义是不符合实际情况的。实际地线上的电位并不是恒定的。如果用仪表测量一下地线上各点之间的电位,会发现...

在Keil MDK中编译Keil C51教程

在电脑中同时要用到51和STM32开发,同时安装了Keil MDK和Keil C51。   我先安装Keil C51,再安装Keil MDK,安装在不同的目录下...

发表评论    

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