HTTP杂谈之Referrer-Policy响应头

Referrer-Policy是一个控制请求头中Referer信息的响应头,用于规范何时发送及发送何种Referer数据。它是一个W3C候选标准,部分浏览器已支持。此策略有助于限制接口调用来源,防止CSRF攻击,并在跨域请求中辅助验证请求来源。可以通过HTML、CSS、JS集成设置,并遵循特定的优先级顺序。Firefox等浏览器有其特定设置,但兼容性需考虑。
摘要由CSDN通过智能技术生成

一   Referrer-Policy

回顾: Referer是表示请求是从'哪个网址'跳转过来的,请求的源站;一般在'图片'、或者'超链接'中

①  背景

现象: 

 1)请求流: client --> APIGATEWAY --> nginx --> 后端服务

 2)发现在'给客户端的响应中',也即'浏览器'中有'Referrer-Policy'响应头,'不符合'预期的

 3)排查: 'Referrer-Policy'是在哪里引入的? 
  
 4)临时解决: 在nginx中'增加'proxy_hide_header Referrer-Policy '隐藏'上游的响应头

②  Referrer-Policy解读

 

1) Referrer-Policy  是一个 '响应头'

2) 作用:控制'请求头'中的'Referer'的内容

3) 现状:目前是w3c官方剔出的一个'候选标准',不过有'部分浏览器'支持该标准,不是一个'通用头'

4) 通俗:规范Referer,规定'什么时候发送Referer 请求头'字段? 以及'发送哪些信息'?

③  语法

④  Referrer-Policy 各个值的解读

 

 

 

 

 

 

 

⑤  为什么要严格控制Referer

1) Referer 参数其实就告诉了'链接的请求'来源于'哪个'网站

  场景: 所以可以根据这个特性,'限制一些接口'只能'特定网站'的才能调,外部网站不能调。

2) 这个参数常常是跟'同源策略'和'跨域请求'关联在一起

 场景: 

  [1]、因为现在普遍都是'前后端分离'项目

  [2]、前端页面的地址和后端 api 接口地址是'跨域'的

  [3]、为了让'后台接口'判断是不是合法请求

  [4]、除了前端在请求头中'加上Authorization字段',后台也可通过'Referer'字段判断请求来源

3) 另外,在 'CSRF 攻击的防范'中

 场景:除了 SameSite Cookie,CSRF token 等方法,Referer 字段判断请求来源也是一种防范手段

⑥  Referrer-Policy 使用方法

1)HTML中集成

2)CSS中集成

3)JS中集成

<script>
fetch(url, {referrerPolicy: "strict-origin-when-cross-origin"});
</script>

⑦  未经验证的浏览器解析顺序

Referrer-Policy是有一个'优先级顺序'的:

  1)Element-level policy

  2)Page-level policy

  3)Browser default

解读: 

  1)元素级别的策略优先级最高,页面级别的次之,浏览器'默认值'最低

  2)所以,可以先设置一个较'严格的页面级'策略再对'某些资源'做渐进'增强'

⑧  fallback p[olicy

⑨  Firefox浏览器设置

⑩  浏览器兼容性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值