xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

Referrer Policy for Internet Security All In One

Referrer Policy for Internet Security All In One

网络安全之引荐人策略

Referrer Policy

  1. Referrer-Policy: no-referrer
  2. Referrer-Policy: no-referrer-when-downgrade
  3. Referrer-Policy: origin
  4. Referrer-Policy: origin-when-cross-origin
  5. Referrer-Policy: same-origin
  6. Referrer-Policy: strict-origin
  7. Referrer-Policy: strict-origin-when-cross-origin
  8. Referrer-Policy: unsafe-url

The Referrer-Policy HTTP header controls how much referrer information (sent with the Referer header) should be included with requests.
Aside from the HTTP header, you can set this policy in HTML.

Referrer-Policy HTTP 标头控制请求中应包含多少引用者信息(与 Referer 标头一起发送)。
除了 HTTP 标头之外,您还可以在 HTML 中设置此策略。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy

冷知识:Referer 是单词拼写错误,为了兼容性,而导致的历史遗留 bug 💩

  • Referrer-Policy 引用策略 ✅
  • referer 引用来源 ✅

如何破解 Referrer Policy: strict-origin-when-cross-origin 问题 ???

再发送请求时候,修改或者绕过 Referrer-Policy ?

async function test() {
  async function parseHTML() {
    const url = `http://abczzz.cn/archives/136?page=1`
    const html = await fetch(url).then(res => res.text())
    console.log(`html =`, html)
  }
  await parseHTML()
}
await test();

应用场景

  1. Web 资源防盗链

盗链: 是指在自己的页面上展示一些并不在自己服务器上的一些内容, 获取别人的资源地址,绕过别人的资源展示页面,直接在自己的页面上向最终用户提供此内容;
一般被盗链的都是图片、 可执行文件、 音视频文件、压缩文件等资源;
通过盗链的手段可以减轻自己服务器的负担;

防盗链原理: 通过 Referer 或者签名,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以追踪到显示它的网页地址, 一旦检测到来源不是本站,则进行阻止非法访问或者返回指定的版权警告页面或不返回任何数据

demos

CORS 请求, 是否返回 HTML 内容

  1. 浏览器客户端,同域名 ✅

  1. 服务器端, 不存在跨域问题,Node.js ✅

image

  1. 浏览器客户端,CORS 跨域名 ❌

Referrer Policy: strict-origin-when-cross-origin

  1. 手动取消请求 referrer ❌ 不好使
<meta name="referrer" content="no-referrer">

image

  1. 客户端在请求时, 无法修改 HTTP header 的保留字段 referer

image

设置 referer 响应头是无效的,这是由于浏览器为了安全起见,无法手动设置部分保留字段,不幸的是 Referer 恰好就是保留字段之一

https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer

引荐来源 (Referer) 和引荐来源政策 (Referrer-Policy) 最佳实践

由于规范中的原始拼写错误,Referer 标头缺少一个 R
JavaScript 和 DOM 中的 Referrer-Policy 标头和 referrer 的拼写是正确的。

<meta name="referrer" content="strict-origin-when-cross-origin" />

fetch(url, {referrerPolicy: 'no-referrer-when-downgrade'});

image

https://web.dev/i18n/en/referrer-best-practices/

https://web.dev/i18n/zh/referrer-best-practices/

https://web.dev/same-site-same-origin/

refs

https://www.cnblogs.com/xgqfrms/p/17655286.html#5205339



©xgqfrms 2012-2025

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @   xgqfrms  阅读(43)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-08-25 微信小程序性能优化 All In One
2022-08-25 上海图书馆 & 上海图书馆东馆 All In One
2022-08-25 人邮学院 All In One
2022-08-25 2022 居家办公高性价比的电动升降桌选购指南 All In One
2020-08-25 auto switch HTTP protocol Chrome Extension
2020-08-25 Cocos Creator 游戏开发
2020-08-25 大屏监控技术实现
点击右上角即可分享
微信分享提示