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

小歆10年前软件源码06087

问题场景

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

相关文章

LT3083:降压DC-DC解决方案电路图

LT3083:降压DC-DC解决方案电路图

LT3083 是一款3A 低压差线性稳压器,可通过并联来增加输出电流或在表面贴装型电路板上散播热量。这款新型稳压器专为用作一个精准电流源和电压跟随器而设计,可在许多要求高电流、至零的可调节能力和不设...

U盘装系统中bios怎么设置USB启动

U盘装系统中bios怎么设置USB启动(图文教程)   常见的两种设置方法:8 L( q)...

PCB布线要点准则

一、电路板设计步骤 一般而言,设计电路板最基本的过程可以分为三大步骤。 (1). 电路原理图的设计: 电路原理图的设计主要是PROTEL099的原理图设计系统(Advanced Schemat...

线宽与电流关系.png

PCB线宽与承载电流的计算

一般情况可以采用经验公式计算:0.15×线宽(W)=A 以上数据均为温度在25℃下的线路电流承载值. 导线阻抗:0.0005×L/W(线长/线宽) 电流承载值与线路上元器件数量/焊...

PCB工程英文单词

单词 附件:attached 样品:sample 承认:approval 答复:answer;reply 规格:...

VB获取网页源代码的五种方法

方法1:inet控件调用方法 Inet1.OpenURL     添加microsoft ineternet transfor conctrol6.0 控件   &n...

发表评论    

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