作用:控制页面发送给 server 的 referer 信息

在 HTML 代码的 head 中添加一句 

<meta name="referrer" content="no-referrer"/>

referrer 的值

  1. 空字符串
  2. no-referrer
  3. no-referrer-when-downgrade
  4. same-origin
  5. origin
  6. strict-origin
  7. origin-when-cross-origin
  8. strict-origin-when-cross-origin
  9. unsafe-url
  • 默认值: 一般浏览器的默认值是 no-referrer-when-downgrade
  • no-referrer: 所有请求不发送 referrer
  • no-referrer-when-downgrade: 当请求安全级别下降时不发送 referrer。目前,只有一种情况会发生安全级别下降,即从 HTTPS 到 HTTP。HTTPS 到 HTTP 的资源引用和链接跳转都不会发送 referrer。
  • same-origin:对于同源的链接和引用,会发送referrer,其他的不会。
  • origin:会发送 referrer,但只会发送源信息。源信息包括访问协议和域名。
  • strict-origin:这个相当于 origin 和 no-referrer-when-downgrade 的 AND 合体。即在安全级别下降时不发送 referrer;安全级别未下降时发送源信息。
    注意:这个是新加的标准,有些浏览器可能还不支持。
  • origin-when-cross-origin:这个相当于 origin 和 same-origin 的 OR 合体。同源的链接和引用,会发送完全的 referrer 信息;但非同源链接和引用时,只发送源信息。
  • strict-origin-when-cross-origin:这个比较复杂,同源的链接和引用,会发送 referrer。安全级别下降时不发送 referrer。其它情况下发送源信息。注意:这个是新加的标准,有些浏览器可能还不支持。
  • unsafe-url:无论是否发生协议降级,无论是本站链接还是站外链接,统统都发送 Referrer 信息。正如其名,这是最宽松而最不安全的策略。

参考资料:Meta 的 referrer 干什么用

或者

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

注意:此方法会破坏浏览器原有的 referer 策略,所有从包含了上面标签的页面中发起的请求将不会携带referer。慎用!

参数

referer 的 metedata 属性可设置content属性值为以下集合:

  • never
  • always
  • origin

结果

  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的值;

举例

  如果页面中包含了如下 meta 标签,所有从当前页面中发起的请求将不会携带 referer:<meta name="referrer" content="never">

  如果页面中包含了如下 meta 标签,则从当前页面中发起的 http请求将只携带 origin 部分:<meta name="referrer" content="origin">

参考资料:Meta referrer标签的简要介绍

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐