跨域请求安全策略:strict-origin-when-cross-origin详解

Referrer-Policy: strict-origin-when-cross-origin 是一种现代浏览器支持的引用来源(Referer)控制策略,用于决定在跨域请求中如何发送 Referer 请求头。
在这里插入图片描述


🔍 strict-origin-when-cross-origin 政策详解

✅ 行为说明:

该策略是 默认行为(在大多数现代浏览器中),其逻辑如下:

请求类型是否发送 RefererReferer 内容
同源请求(Same-origin)✅ 发送完整 URL(包括路径和查询参数)
跨源请求(Cross-origin)且安全上下文(HTTPS → HTTPS)✅ 发送仅发送源地址(Origin:协议 + 域名 + 端口)
跨源请求且从 HTTPS 发起 HTTP 请求(不安全降级)❌ 不发送

📋 示例场景

场景请求目标Referer 值
https://a.com/page1 跳转到 https://a.com/page2同源https://a.com/page1
https://a.com/page1 请求 https://b.com/api跨源(HTTPS→HTTPS)https://a.com
https://a.com/page1 请求 http://b.com/api跨源且降级 HTTP无 Referer

💡 与其他常见策略对比简表

Referrer Policy同源行为跨源(HTTPS→HTTPS)跨源降级(HTTPS→HTTP)
no-referrer
no-referrer-when-downgrade完整 URL完整 URL
same-origin完整 URL
origin仅源仅源仅源
strict-origin仅源仅源
strict-origin-when-cross-origin完整 URL仅源无 ✅(最安全)

🛡️ 推荐使用场景

  • 前后端分离项目
  • 防止敏感路径泄露
  • 确保跨域请求不携带完整路径信息

🧩 如何设置?

在 HTTP 头中配置:

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

在 HTML 页面中通过 <meta> 标签设置(适用于文档范围):

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

✅ 总结

strict-origin-when-cross-origin 是一个兼顾安全与功能性的推荐策略:

  • 保留同源请求的详细上下文;
  • 对跨源请求仅暴露源地址;
  • 在降级请求时不暴露任何信息,防止信息泄露。

适用于大多数 Web 应用的安全场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱的叹息

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值