让https网站推送 referrer https 与 http 自动跳转 ref

日期:2021-03-20 类型:科技新闻 

关键词:h5互动游戏,微信h5怎么制作,h5转盘抽奖,h5测试制作,凡科H5

本文叙述了1个有关 http 协议书中 referer 的 metadata 主要参数的建议,应用这个 metadata 主要参数,html 文本文档能够操纵 http 恳求中的 referer ,例如是不是推送 referer、只推送 hostname 還是推送详细的 referer 等。尽管有1些方式能够操纵 referer ,例如 flash,和1些 js 的 tricks,可是本文中叙述的是此外1番景色。

应用情景

在一些状况下,出于1些缘故,网站要想操纵网页页面推送给 server 的 referer 信息内容的状况下,可使用这1 referer metadata 主要参数。

隐私保护

社交媒体网站1般都会有效户本人网页页面,这些网页页面选用户都有将会加上1些外网地址的连接,而社交媒体网站有将会不期待在客户点一下了这些连接的情况下,泄漏客户网页页面的 URL ,由于这些 URL 中将会包括1些比较敏感信息内容。自然,一些社交媒体网站将会只想在 referer 中出示1个 hostname,而并不是详细的 URL 信息内容。

安全性

一些应用了 https 的网站,将会在 URL 中应用1个主要参数(sid 等)来做为客户身份凭据,而又必须引进别的 https 网站的資源,这类状况下,网站毫无疑问不期待泄漏客户的身份凭据信息内容。

Object-Capability Discipline

一些网站遵照Object-Capability Discipline,而 referer 恰好与这1对策相悖,因此,网站可以操纵 refeer 将对 Object-Capability Discipline 很有益。

技术性细节

referer 的 metedata 主要参数能够设定为下列几类型型的值:

never
always
origin
default
 

假如在文本文档中插进 meta 标识,而且 name 特性的值为 referer,访问器顾客端将依照以下流程解决这个标识:

1.假如 meta 标识中沒有 content 特性,则停止下面全部实际操作
2.将 content 的值拷贝给 referrer-policy ,并变换为小写
3.查验 content 的值是不是为上面 list 中的1个,假如并不是,则将值置为 default
 

上述流程以后,访问器后续进行 http 恳求的情况下,会依照 content 的值,做出以下反映(下面 referer-policy 的值即 meta 标识中 content 的值):

1.假如 referer-policy 的值为never:删掉 http head 中的 referer;
2.假如 referer-policy 的值为default:假如当今网页页面应用的是 https 协议书,而正要载入的資源应用的是一般的 http 协议书,则将 http header 中的 referer 置为空;
3.假如 referer-policy 的值为 origin:只推送 origin 一部分;
4.假如 referer-policy 的值为 always:不更改http header 中的 referer 的值,留意:这类状况下,假如当今网页页面应用了 https 协议书,而要载入的資源应用的是 http 协议书,载入資源的恳求头中也会携带 referer。
 

事例

假如网页页面中包括了以下 meta 标识,全部从当今网页页面中进行的恳求将不容易携带 referer:

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

假如网页页面中包括了以下 meta 标识,则从当今网页页面中进行的 http恳求将只携带 origin 一部分(注:依据原文中的语境,我了解这里的 origin 是包括了 schema 和 hostname 的一部分 url,不包括 path 等后边的别的 url 一部分),而并不是详细的 URL :

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

留意:在应用本文中所述的 meta 标识的情况下,访问器原来的 referer 对策将挨打破,例如从 http 协议书的网页页面自动跳转到 https 的网页页面的情况下,假如设定了适度的值,也会携带 referer。

别的难题

这与 rel=noreferer 有甚么关联呢?将会 rel=noreferer 会遮盖掉本文中的 meta 标识所设定的值。也便是作用遮盖。
origin 信息内容并不是1个详细的 url,因此访问器顾客端估算会在 origin 后边加1个 / 来做为 path 一部分。
假如 origin 是唯1的,会产生甚么状况呢?估算 referer 会被忽视。

译者注

这篇文章内容最开始写于2012年,现阶段在初始网页页面早已是废料情况,而且早已出示了w3c 的referer-policy 网页页面,可是,译者留意到,现阶段许多网站在防御力 CSRF 的情况下,都选用校检 referer 的方式,有时容许 referer 为空,而且一些 BAT 厂商的关键业务流程在防御力 JSON 被劫持的情况下,也选用校检 referer 的方式并容许 referer 为空,或许你会感觉本文中叙述的只是1种建议,可是,FireFox 在21日的1篇文章内容中早已申明,从 Firefox 36 Beta 刚开始,可能适用 referer-policy,这无疑会让1些厂商的业务流程遭遇威协。

[参照来源于wiki.whatwg.org,转载请注明来自FreeBuf网络黑客与极客(FreeBuf.COM)]

https 与 http 自动跳转 referer 的难题

Http协议书头中的Referer关键用来让服务器分辨来源于网页页面, 即客户是从哪一个网页页面来的。获得方法:$_SERVER[ 'HTTP_REFERER' ]

在https->http自动跳转中,refer是不提议被传送的,而https->https和http->https则沒有这个难题。

比如我获得2维码插口详细地址:

正确的实际效果

https://qrcode.artron.net/?text=https|http://m-exhibit.artron.net/&el=10&margin=1

不正确的实际效果

http://qrcode.artron.net/?text=https://m-exhibit.artron.net/jump/index

认证結果显示信息,https 能够适配http的1些主要参数难题,而http不可以适配https的主要参数难题,在这里顺带说1下http与https的差别

超文字传送协议书HTTP协议书被用于在Web访问器和网站服务器之间传送信息内容。HTTP协议书以密文方法推送內容,不出示任何方法的数据信息数据加密,假如进攻者截取了Web访问器和网站服务器之间的传送报文格式,便可以立即读懂在其中的信息内容,因而HTTP协议书不合适传送1些比较敏感信息内容,例如个人信用卡号、登陆密码等。
以便处理HTTP协议书的这1缺点,必须应用另外一种协议书:安全性套接字层超文字传送协议书HTTPS。以便数据信息传送的安全性,HTTPS在HTTP的基本上添加了SSL协议书,SSL借助资格证书来认证服务器的身份,并为访问器和服务器之间的通讯数据加密。

HTTPS和HTTP的差别关键为下列4点:

1、https协议书必须到ca申请办理资格证书,1般完全免费资格证书非常少,必须交费。
2、http是超文字传送协议书,信息内容是密文传送,https 则是具备安全性性的ssl数据加密传送协议书。
3、http和https应用的是彻底不一样的联接方法,用的端口号也不1样,前者是80,后者是443。
4、http的联接很简易,是无情况的;HTTPS协议书是由SSL+HTTP协议书搭建的可开展数据加密传送、身份验证的互联网协议书,比http协议书安全性。

下列是对难题的回应:

依据上文的表明,1般状况下,从HTTPS站到HTTP站点的自动跳转,访问器默认设置不推送referrer,能够根据大约两种方法让访问器传输referrer:

1,在A站的head中添加

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

2,B站也选用HTTPS
 

自然假如A站强制性要求不推送referrer,B站又沒有对A站的操纵权,就像上文中提到的1样,大家是没法操纵让第3方统计分析专用工具统计分析到百度搜索检索来源于重要词的。

上一篇:FIVE SENSES LIFESTYLE 返回下一篇:没有了