最近Chrome宣布,从85版本开始,将Referrer-Policy默认策略从
no-referrer-when-downgrade 变更到 strict-origin-when-cross-origin,今天来分析这个调整带来的一些影响。 首先Chrome的这个调整会减少网站对跨站用户的静默追踪,是非常好的措施。 设想你正在看一些羞羞的东西,比如链接是: http://www.xxxx.com/a?b=羞羞 ,如果你在这个页面点了一个微博链接,根据HTTP协议,你的浏览器在向微博发送请求的时候,也会把你现在浏览的页面URL通过Referer发给微博的服务器。 如果你此时登录了微博账号,那微博自然就知道你是谁,而且也知道是从羞羞的URL那里过来的。 如果按照Chrome的新策略,微博就只能知道你是通过 http://www.xxxx.com 来,拿不到具体的URL。 那,我们先来学习一下Referrer-Policy。
可以看到Referer的值,是微博主页,说明我是从微博主页使用微博搜索并跳转的。
这里要注意Referer头应该是Referrer,少了一个字母r,因为在制定规范时犯了一个语法错误,一直沿用这个错误至今。
Referrer-Policy总共有8种策略
在上图中,微博搜索跨域加载图片,Referrer-Policy为默认值no-referrer-when-downgrade,Referer带着来源网页。
默认为no-referrer-when-downgrade。跨域访问的话,Referer是URL。
如果Chrome把默认策略改为strict-origin-when-cross-origin,在你访问的网站没有设置的情况下,
是以下这种情况:
在跨域的情况下,只显示
域名部分
。
这次的更改,对一些防盗链,返利网站应该有一些影响,如果网站指定了Referrer-Policy,则不受影响。
参考资料:
no-referrer-when-downgrade 变更到 strict-origin-when-cross-origin,今天来分析这个调整带来的一些影响。 首先Chrome的这个调整会减少网站对跨站用户的静默追踪,是非常好的措施。 设想你正在看一些羞羞的东西,比如链接是: http://www.xxxx.com/a?b=羞羞 ,如果你在这个页面点了一个微博链接,根据HTTP协议,你的浏览器在向微博发送请求的时候,也会把你现在浏览的页面URL通过Referer发给微博的服务器。 如果你此时登录了微博账号,那微博自然就知道你是谁,而且也知道是从羞羞的URL那里过来的。 如果按照Chrome的新策略,微博就只能知道你是通过 http://www.xxxx.com 来,拿不到具体的URL。 那,我们先来学习一下Referrer-Policy。
什么是Referrer-Policy
HTTP头中的Referrer-Policy主要是用来监管哪些访问来源信息,它会在Referer中发送一些信息。 比如,我在微博上搜索github![31b4b65512a41116113f907e7213f79b.png](https://img-blog.csdnimg.cn/img_convert/31b4b65512a41116113f907e7213f79b.png)
no-referrer
no-referrer-when-downgrade
origin
origin-when-cross-origin
same-origin
strict-origin
strict-origin-when-cross-origin
unsafe-url
![c8e25857dd47a37e3e0cba0e15a3d6df.png](https://img-blog.csdnimg.cn/img_convert/c8e25857dd47a37e3e0cba0e15a3d6df.png)
这次更改的影响
网站的Referrer-Policy设置影响Referer头的信息。如下图所示:![1a359599dc947ba4499869755ba3c22d.png](https://img-blog.csdnimg.cn/img_convert/1a359599dc947ba4499869755ba3c22d.png)
![4f96e1ce82649fe771024e42359a51ca.png](https://img-blog.csdnimg.cn/img_convert/4f96e1ce82649fe771024e42359a51ca.png)
我想体验怎么办
Chrome更改并非突然,其实从Chrome 81版本开始,就可以通过访问chrome://flags/#reduced-referrer-granularity
来手动打开此功能,只是在Chrome 85版本之后把它变成了默认值。体验最好的办法就是升级Chrome到85版本。
![08afcfcecae94648768cae08ec8a71a4.png](https://img-blog.csdnimg.cn/img_convert/08afcfcecae94648768cae08ec8a71a4.png)
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Referrer-Policy
https://developers.google.com/web/updates/2020/07/referrer-policy-new-chrome-default
https://site-one-dot-referrer-demo-280711.ey.r.appspot.com/stuff/detail?tag=red&p=p0
![34eead797e9298fe3c1dd52e2568b50a.png](https://img-blog.csdnimg.cn/img_convert/34eead797e9298fe3c1dd52e2568b50a.png)