本文分享自微信公众号 - code秘密花园(code_mmhy),作者:ConardLi

原文出处及转载信息见文内详细说明,如有侵权,请联系 1278556902@qq.com 删除。

原始发表时间:2020-11-17

文章目录

  • 前言
  • Referer 标头
  • Referer-Policy
  • Referer-Policy 默认值
  • 变化
  • 不变的

前言

如果你的站点有使用 Referer 标头收集网页的访问来源信息,则此策略变化可能对你的程序造成影响,请仔细阅读。

在开始阅读本文之前,如果你不理解 siteorigin之间的关系,请阅读:同站和同源你理解清楚了么?

Referer 标头

Referer请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。

服务端一般使用 Referer请求头识别访问来源,可能会以此进行统计分析、日志记录以及缓存优化等。

这里有意思的一点:referer 实际上是 “referrer” 误拼写。Referrer-Policy 标头以及 JavaScript 中的 referrer 拼写是没有问题的。

Referer-Policy

Referer请求头可能暴露用户的浏览历史,涉及到用户的隐私问题。所以 HTTP 提供了 Referrer-Policy标头,其用来监管和限制哪些访问来源信息会在 Referer中发送(应该被包含在生成的请求当中)。

Referer-Policy包括以下几个可选项

  • no-referrer

整个 Referer首部会被移除。访问来源信息不随着请求一起发送。

  • no-referrer-when-downgrade (默认值)

在同等安全级别的情况下,引用页面的地址会被发送(HTTPS->HTTPS),但是在降级的情况下不会被发送 (HTTPS->HTTP)

  • origin

在任何情况下,仅发送文件的源作为引用地址。例如https://example.com/page.html会将 https://example.com/作为引用地址。

  • origin-when-cross-origin

对于同源的请求,会发送完整的URL作为引用地址,但是对于非同源请求仅发送文件的源。

  • same-origin

对于同源的请求会发送引用地址,但是对于非同源请求则不发送引用地址信息。

  • strict-origin

在同等安全级别的情况下,发送文件的源作为引用地址(HTTPS->HTTPS),但是在降级的情况下不会发送 (HTTPS->HTTP)

  • strict-origin-when-cross-origin

对于同源的请求,会发送完整的URL作为引用地址;在同等安全级别的情况下,发送文件的源作为引用地址(HTTPS->HTTPS);在降级的情况下不发送此首部 (HTTPS->HTTP)

  • unsafe-url

无论是同源请求还是非同源请求,都发送完整的 URL(移除参数信息之后)作为引用地址。

Referer-Policy 默认值

如果 Referer-Policy未设置任何策略,则使用浏览器的默认值。网站通常会遵循浏览器的默认设置。

对于导航和 iframe, Referer头中的数据也可以通过 JavaScript 使用 document.referrer访问。

no-referrer-when-downgrade 是跨浏览器的一种广泛的默认策略。但是现在,许多浏览器正处于向更多提高隐私的默认设置过渡的阶段。

Chrome 计划在85版开始 将其切换默认策略 no-referrer-when-downgrade更换到strict-origin-when-cross-origin

变化

strict-origin-when-cross-origin提供更多的隐私。有了这个政策,Referer 标头只会发送 origin

这样可以防止泄漏私人数据,这些数据可以从完整URL的其他部分(例如路径和查询字符串)访问。

例如,在一个跨域请求中:

https://site-one.example/stuff/detail?tag=red访问https://site-two.example/…

使用 no-referrer-when-downgrade: Referer: https://site-one.example/stuff/detail?tag=red
使用 strict-origin-when-cross-origin: Referer: https://site-one.example/

不变的

no-referrer-when-downgrade一样,strict-origin-when-cross-origin 在从 HTTPS 来源访问 HTTP 站点时,不会携带Referer头。
在相同的来源内,Referer标头值为完整的 URL 。

Referer请求头相关推荐

  1. JavaScript 能否修改 Referer 请求头

    正如题目,本文主题也很直白,主要就是围绕这个问题展开.JavaScript 能否修改 Referer 请求头?现在 JavaScript 的能力越来越强大,JavaScript 似乎无所不能,修改一个 ...

  2. 获取referer中的请求参数_javaweb之request获取referer请求头实现防盗链

    在开发web程序的时候,有时我们需要得到用户是从什么页面连过来的,这就用到了referer. 它是http协议,所以任何能开发web程序的语言都可以实现,比如jsp中是: request.getHea ...

  3. Qt实践| HTTP知识点-Qt填充referer请求头盗取图片

    目录 基本概念 代码与实例 基本概念 HTTP协议头中的Referer主要是用来让服务器判断来源页面,即用户是从那个页面来的.网站通常用其来统计用户来源,看用户是从搜索页面来的,还是从其他网站链接来的 ...

  4. 利用Referer请求头防止“盗链”

    一.介绍 在实际开发中,经常会使用Referer头字段,例如,一些站点为了吸引人气并且提高站点访问量,提供了各种软件的下载页面,但是它们本身没有这些资源,只是将下载的超链接指向其它站点上的资源.而真正 ...

  5. Request Headers 和Response Headers——请求头和响应头

    前沿 作为一个前端开发工程师看不懂每条请求的请求头和响应头,实在是一件很难受的事情.最近花了一些时间整理了一篇文档,一起来看看前后端交互时每个资源的信息. 谷歌浏览器调试工具--查看请求资源的信息数据 ...

  6. HTTP请求头和响应头

    请求头 Accept:浏览器可接受的MIME类型. 就是希望服务器返回什么类型的数据,比如application/json,text/html,image/png,*/* Accept:applica ...

  7. http请求头中Referer的含义和作用

    http请求头中Referer的含义和作用 别人写好了,链接过去看看吧,出门左转. 记得房号不迷路 02房 01房 三人行必有我师焉,其实两人行也有我师焉--

  8. 解密http请求头的Host,Referer,Origin背后的含义:

    Host:指定请求服务器的域名/IP地址和端口号. 作用: 同一台机器上,可能部署多个服务,通过解析host+端口,指定具体访问的站点. host的要点: HTTP/1.0不带host,HTTP/1. ...

  9. http请求头origin、referer和host区别

    1. Host 描述请求将被发送的目的地,包括且仅仅包括域名和端口号. HTTP/1.1 的所有请求报文中必须包含一个Host头字段,且只能设置一个. 2. Origin 请求头origin表明了请求 ...

最新文章

  1. 浅析对象访问属性的.和[]方法区别
  2. 迪拜宣布亿航“无人机的士”计划,将于7月份正式运营
  3. linux下signal()函数超详细介绍
  4. java se 定时任务_Java实现定时任务的三种方法
  5. linux不重启换root密码是什么原因,在Linux下修改和重置root密码的方法(超简单)
  6. 有关linux用户和用户组管理的知识详解
  7. mysql的utf8与utf8mb4 异同;utf8mb4_unicode_ci 与 utf8mb4_general_ci 如何选择
  8. amap vueamap 与_vue 使用高德地图vue-amap组件过程解析
  9. 基于多源数据画像的失败用例智能分析
  10. STM32 输入捕获功能
  11. c51随机数不重复_C++中随机数和不重复的随机数
  12. python画50个图-Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?
  13. 一个很好的弹出层插件nyroModal
  14. 如何删除数据库中的冗余数据
  15. 阿里免费网盘teambition使用初体验
  16. Axure RP9 轮播图交互
  17. 基于javaweb的简单员工管理系统
  18. html照片编辑,照片编辑器「Photo Editor」
  19. 华为手机使用应用沙盒动态修改cpu数据
  20. ESP8266_19MQTT协议接入ONENET平台_订阅主题

热门文章

  1. Math数据类型的方法集合
  2. 100盏灯开关的问题
  3. 数据挖掘|关联规则Apriori算法详解及其在中医医案中的应用
  4. python zip_longest和zip的比较
  5. 为什么王者荣耀总是服务器中断,王者荣耀有史以来游戏时间最长的对局!服务器多次崩溃!破纪录!...
  6. 异常续--捕获--重载与重写--finally块
  7. EnjoySearch搜索引擎工具,开始支持:神马搜索
  8. 电脑开机突然变得很慢?是机器老化么?你该了解了解这些了
  9. WebStorm的破解与安装
  10. The Architecture of Open Source Applications: Berkeley DB