根据 W3C RFC 2616 里的规则( https://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3 ),在 https 的网站上点击 http 链接时, Referer 并不会发送到 http 目的地。
Clients SHOULD NOT include a Referer header field in a (non-secure) HTTP request if the referring page was transferred with a secure protocol.
如果希望在这种情况下保持发送 Referer ,那么可以在页面中加入下面的这个 header :
<meta name="Referrer" content="origin" />
目前的主流浏览器都已经支持这个头部,除了 IE 系列:
http://caniuse.com/#feat=referrer-policy
下面是关于这个标签的具体解释:
这里需要注意的一个坑是,如果你在 HTML 中加入的是下面的这个 Referrer Policy,那么在发送 Referer 头部时,只会发送源网站的域名:
<meta name="Referrer" content="origin" />
如果你希望发送完整的 URL,那么你需要加入的是:
<meta name="Referrer" content="unsafe-url" />
关于这里可能的各种设置:
https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-unsafe-url
1
dant 2017-03-02 13:12:11 +08:00
要的就是这个 feature (逃
|
2
LukeXuan 2017-03-03 09:54:27 +08:00
看起来登录失败原因是这个 append
|
3
RihcardLu 2017-03-03 10:00:24 +08:00
还有一个,直接在浏览器输入地址时 refer 首部并不会被添加,同一窗口打开外链 refer 首部会被添加
|
4
raquant 2017-03-18 12:01:50 +08:00
好东西!
|
5
kslr 2018-11-16 20:21:08 +08:00
没想到是可以接受 Referrer 的
|