请解释 Referrer Policy 的作用和配置方法

推荐答案

Referrer Policy 用于控制浏览器在发送请求时如何处理 Referer 头部信息。通过配置 Referrer Policy,开发者可以决定是否发送 Referer 头部,以及发送多少信息,从而保护用户隐私或满足特定需求。

配置方法

Referrer Policy 可以通过以下方式配置:

  1. HTTP 头部

  2. HTML <meta> 标签

  3. JavaScript

常用策略

  • no-referrer:不发送 Referer 头部。
  • no-referrer-when-downgrade(默认):在从 HTTPS 降级到 HTTP 时不发送 Referer 头部。
  • origin:只发送源(协议+主机+端口),不包含路径和查询参数。
  • origin-when-cross-origin:跨域时只发送源,同域时发送完整 URL。
  • same-origin:只在同域请求时发送 Referer 头部。
  • strict-origin:在从 HTTPS 降级到 HTTP 时不发送 Referer 头部,且只发送源。
  • strict-origin-when-cross-origin:跨域时只发送源,同域时发送完整 URL,且在降级时不发送 Referer 头部。
  • unsafe-url:始终发送完整 URL,即使是从 HTTPS 降级到 HTTP。

本题详细解读

作用

Referrer Policy 的主要作用是控制浏览器在发送请求时如何处理 Referer 头部信息。Referer 头部通常包含请求来源的 URL,可能包含敏感信息。通过配置 Referrer Policy,开发者可以:

  • 保护用户隐私:防止敏感信息泄露。
  • 优化性能:减少不必要的头部信息传输。
  • 满足安全需求:防止跨站请求伪造(CSRF)等攻击。

配置方法详解

  1. HTTP 头部

    • 通过服务器配置,适用于整个网站或特定页面。
    • 示例:
  2. HTML <meta> 标签

    • 适用于单个页面,优先级低于 HTTP 头部。
    • 示例:
  3. JavaScript

    • 动态设置,适用于需要运行时调整的场景。
    • 示例:

策略详解

  • no-referrer:完全不发送 Referer 头部,适用于高度隐私保护场景。
  • no-referrer-when-downgrade:默认策略,在 HTTPS 降级到 HTTP 时不发送 Referer 头部,适用于大多数场景。
  • origin:只发送源信息,适用于需要保护路径和查询参数的场景。
  • origin-when-cross-origin:跨域时只发送源,同域时发送完整 URL,适用于需要平衡隐私和功能的场景。
  • same-origin:只在同域请求时发送 Referer 头部,适用于严格同源策略的场景。
  • strict-origin:在从 HTTPS 降级到 HTTP 时不发送 Referer 头部,且只发送源,适用于需要严格安全控制的场景。
  • strict-origin-when-cross-origin:跨域时只发送源,同域时发送完整 URL,且在降级时不发送 Referer 头部,适用于需要严格安全控制和功能平衡的场景。
  • unsafe-url:始终发送完整 URL,即使是从 HTTPS 降级到 HTTP,适用于需要完整 URL 信息的场景,但存在安全风险。
纠错
反馈