跨域请求安全策略:strict-origin-when-cross-origin详解
·
Referrer-Policy: strict-origin-when-cross-origin 是一种现代浏览器支持的引用来源(Referer)控制策略,用于决定在跨域请求中如何发送 Referer 请求头。

🔍 strict-origin-when-cross-origin 政策详解
✅ 行为说明:
该策略是 默认行为(在大多数现代浏览器中),其逻辑如下:
| 请求类型 | 是否发送 Referer | Referer 内容 |
|---|---|---|
| 同源请求(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 应用的安全场景。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)