“引荐来源网址政策”(Referrer Policy)解析

测试智商的网站 3小时前 阅读数 8097 #在线测试

“引荐来源网址政策”(Referrer Policy)解析

Referrer Policy 是 HTTP 响应头(Referrer-Policy)或 HTML <meta> 标签中定义的策略,用于控制浏览器在发起请求时如何传递 Referer(引荐来源)头部信息。strict-origin-when-cross-origin 是其中一种策略,以下是其含义及所有可选值的详细说明。


1. strict-origin-when-cross-origin 的含义

  • 适用场景:跨域请求(如从 https://example.com 跳转到 https://api.example.org)。
  • 行为
    • 同源请求:发送完整的 Referer(包括路径和查询参数)。
      示例:
      • 访问 https://example.com/page1 → 跳转到 https://example.com/page2
      • 发送的 Refererhttps://example.com/page1
    • 跨域请求:仅发送来源(origin,即协议+域名+端口),不包含路径和查询参数
      示例:
      • 访问 https://example.com/page1 → 跳转到 https://api.example.org/data
      • 发送的 Refererhttps://example.com(隐藏 /page1
  • 安全特性
    • 在跨域时隐藏路径和查询参数,防止敏感信息(如用户 ID、搜索关键词)泄露。
    • 相比宽松策略(如 no-referrer-when-downgrade),更严格地保护隐私。

2. 所有 Referrer Policy 值及行为

以下是 HTTP 响应头或 <meta> 标签中可配置的所有策略及其行为:

策略值 同源请求 跨域请求 安全等级 典型用途
no-referrer 不发送 Referer 不发送 Referer 最高 完全禁用引荐来源(如隐私敏感场景)
no-referrer-when-downgrade 发送完整 Referer 仅当目标为 HTTPS 时发送完整 Referer;HTTP 时不发送 中等 默认策略(浏览器默认行为)
same-origin 发送完整 Referer 不发送 Referer 仅允许同源请求携带引荐来源
origin 发送来源(origin 发送来源(origin 中高 仅暴露域名,隐藏路径和参数
strict-origin 发送来源(origin 仅当目标为 HTTPS 时发送来源;HTTP 时不发送 严格限制跨域 HTTPS 请求的引荐来源
origin-when-cross-origin 发送完整 Referer 发送来源(origin 中高 平衡隐私与功能(如跨域 API 调用)
strict-origin-when-cross-origin 发送完整 Referer 仅当目标为 HTTPS 时发送来源;HTTP 时不发送 严格保护跨域隐私(推荐策略)
unsafe-url 发送完整 Referer 发送完整 Referer 最低 允许所有请求暴露完整 URL(不安全)

3. 策略对比与推荐

  • 隐私优先
    • strict-origin-when-cross-origin:跨域时隐藏路径和参数,仅暴露来源。
    • strict-origin:更严格,仅允许 HTTPS 跨域请求发送来源。
  • 功能优先
    • origin-when-cross-origin:允许跨域时暴露来源,适合需要部分引荐信息的场景。
  • 完全禁用
    • no-referrer:彻底隐藏引荐来源,可能影响某些分析功能(如 Google Analytics)。
  • 不推荐
    • unsafe-url:泄露完整 URL(包括敏感参数),仅用于测试或明确需要时。

4. 配置方式

HTTP 响应头

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

HTML <meta> 标签

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

5. 实际应用示例

  • 场景 1:用户从 https://shop.example.com/checkout?user=123 跳转到第三方支付页面 https://pay.example.org
    • 策略:strict-origin-when-cross-origin
    • 结果:Referer 发送为 https://shop.example.com(隐藏 user=123)。
  • 场景 2:网站内部跳转 https://example.com/page1https://example.com/page2
    • 策略:strict-origin-when-cross-origin
    • 结果:Referer 发送为 https://example.com/page1(完整路径)。

总结

  • strict-origin-when-cross-origin 是一种平衡隐私与功能的策略,适合大多数现代网站。
  • 根据安全需求选择策略:隐私优先选 strict-originno-referrer,功能优先选 origin-when-cross-origin
  • 避免使用 unsafe-url,除非明确需要暴露完整 URL。

通过合理配置 Referrer Policy,可以在保护用户隐私的同时,确保网站功能正常运行。

“引荐来源网址政策”(Referrer Policy)解析

  • 随机文章
  • 热门文章
  • 热评文章
热门