HTTP的Referrer和Referrer Policy设置
程序员文章站
2022-07-11 20:38:09
Referrer referrer是HTTP请求header的报文头,用于指明当前流量的来源参考页面。通过这个信息,我们可以知道访客是怎么来到当前页面的。这对于Web Analytics非常重要,可以用于分析不同渠道流量分布、用户搜索的关键词等。 但是,这个字段同时会造成用户敏感信息泄漏(如:带有敏 ......
referrer
referrer是http请求header的报文头,用于指明当前流量的来源参考页面。通过这个信息,我们可以知道访客是怎么来到当前页面的。这对于web analytics非常重要,可以用于分析不同渠道流量分布、用户搜索的关键词等。
但是,这个字段同时会造成用户敏感信息泄漏(如:带有敏感信息的重置密码url,若被web analytics收集,则存在密码被重置的危险)。
referrer policy states
新的referrer规定了五种策略:
- no referrer:任何情况下都不发送referrer信息
- no referrer when downgrade:仅当协议降级(如https页面引入http资源)时不发送referrer信息。是大部分浏览器默认策略。
- origin only:发送只包含host部分的referrer.
- origin when cross-origin:仅在发生跨域访问时发送只包含host的referer,同域下还是完整的。与origin only的区别是多判断了是否cross-origin。协议、域名和端口都一致,浏览器才认为是同域。
- unsafe url:全部都发送referrer信息。最宽松最不安全的策略。
referrer具体设置
csp响应头
csp(content security policy)
content-security-policy: referrer no-referrer|no-referrer-when-downgrade|origin|origin-when-cross-origin|unsafe-url;
指令和指令值之间以空格分割,多个指令之间用英文分号分割。
标签
html页面的meta标签指定。
如果content属性不是合法的取值,浏览器会自动选择no-referer策略。
<meta name="referrer" content="no-referrer|no-referrer-when-downgrade|origin|origin-when-crossorigin|unsafe-url">
标签的referer属性
- 作用的只是当前标签。
- 策略只有三中:不传、直传host都传。
- 针对单个链接设置的策略优先级比csp和要高。
<a href="http://example.com" referrer="no-referrer|origin|unsafe-url">xxx</a>
ps:
题外话:楼主之前使用cnzz进行站长统计,7月份开始,单个页面的访问统计失效,全部归入首页。今天终于明白,应该是博客园增加了referrer policy导致。
上一篇: 暧昧期该不该发生关系?不该!
下一篇: 白领防治颈椎病四妙招 穴位按摩拯救颈椎