Defaults.Exposed

Defaults.Exposed修复 › Referrer-Policy(来源页策略)

如何修复 Referrer-Policy(来源页策略)

Referrer-Policy 是你网站交给每位访客浏览器的一条简单指令,控制当访客点击通往别的网站的链接时,你的网址会随他们带走多少。少了它,他们当时所在那个页面的完整网址——搜索词、账号、重置链接、内部页面路径,统统在内——会被悄悄交给他们接着落地的那个网站,包括广告商、分析公司,以及链接指向的任何地方。

对您业务的关键影响: 每当访客点击一个外部链接、广告或共享资源,他们的浏览器都可能把你页面的完整网址交给目标站点——而如果你的网址里带着搜索词、客户 ID、订单号或一次性链接,你就在向自己无法掌控的第三方泄露客户数据。这是监管机构严肃对待的数据保护问题,是一项被悄悄打破的隐私承诺,也是客户安全团队在尽职调查时会标记出来的计分漏洞。

这会让您付出什么代价

为什么它重要。 浏览器若任其自便,是很爱多嘴的:它们默认会告诉下一个网站访客刚从哪里来,往往连页面的完整网址一起带上。对一个纯展示型网站这也许无害,但只要你的网址里含有任何私密信息——一个搜索词、一个订单 ID、一个链接里的邮箱、一条私密路径——这个默认行为就会悄悄把它泄露给外部方。Referrer-Policy 正是那一个让浏览器停止过度分享的设置。它是评分卡上一项实打实得分的计分检查,直接对应隐私法下的数据最小化义务,也是任何专业审查都期望看到的标准安全响应头之一。

一句话说清这是什么

每当你网站上的访客点击通往另一个站点的链接——一个外部链接、一条横幅广告、一个分享此页、甚至一个从别处加载的字体或图片——他们的浏览器都会悄悄附上一张便条,说明他们从你的哪个页面过来。这张便条就叫来源页(referrer)

用得合理,来源页无害甚至有用:别的网站正是靠它知道流量来自你,许多正当的分析也靠它支撑。问题出在默认行为上。若不加管理,浏览器不只是说他们来自 your-business.com——它往往会交出那个确切页面的完整网址,包括域名之后的一切。而网址承载的远比人们以为的多:输入到你网站里的搜索词、订单号和账号、通往一个仅限会员页面的路径,甚至密码重置和确认链接里的一次性秘密令牌。

Referrer-Policy 是你网站发给浏览器的一条指令,规定它可以分享那张便条里的多少内容。你可以让它只分享你的域名、只分享给你自己网站上的其他页面,或者什么都不分享。把它想成这样的差别:要么把写满日程的完整家庭住址递给一个陌生人,要么只告诉对方你住在哪个城市。

它属于一小族安全响应头——你网站给每位访客浏览器的简短指令。它不改变你网站的外观或运作。它只是让浏览器别替你过度分享。

这会让你付出什么代价

下面是缺失或宽松的 Referrer-Policy 咬伤真实企业的几种具体、日常的方式。它们都不需要黑客——它们在正常使用中每天自动发生。

它实际上是什么

默认情况下,现代版本的浏览器遵循一种大致等同于 strict-origin-when-cross-origin 的行为——但你不能依赖它,因为旧浏览器、内嵌网页视图和某些配置仍会退回到泄露更多。唯一保险的办法是显式设置该策略。设置时,你是在一份简短清单中选一条规则。要紧的有:

以及两个要避免的取值,因为评分卡把它们视同根本没有响应头:

**良好的状态长什么样:**存在一条 Referrer-Policy 响应头,且设为收紧的取值——对大多数企业是 strict-origin-when-cross-origin。这既让引荐分析照常工作,又确保你域名之后的任何内容永远不会到达外部站点。

如何修复(免费,约 5 分钟)

**把这一节交给你的 IT 人员、网页开发人员或主机服务商——修复是免费的,只有一行,而且不会弄坏你的网站。**这里没有什么有风险的上线:不像某些安全设置,一个合理的 Referrer-Policy 不会让你的链接或页面停止工作。它只是裁剪分享给别的网站的内容。

目标:设置一条值为 strict-origin-when-cross-originReferrer-Policy 响应头(如果你想分享得更少,也可设更严的值)。

Cloudflare(无需代码——如果你用它,这是最简单的): 仪表盘 → 你的域名 → Rules → Transform Rules → Modify Response Header → Create rule → Set static → 响应头名 Referrer-Policy,值 strict-origin-when-cross-origin → 应用于所有进入的请求 → Deploy。

**Google Workspace / Microsoft 365:**这些管理的是你的邮箱,不是你的网站,所以响应头要设在你网站实际托管的地方(你的 Web 主机、CDN 或服务器)——而不是 Workspace 或 365 的管理后台。先确定主机,再用下面对应的方法。

Nginx:

add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Apache(在站点配置或 .htaccess 中):

Header always set Referrer-Policy "strict-origin-when-cross-origin"

IISweb.config):

<httpProtocol><customHeaders>
  <add name="Referrer-Policy" value="strict-origin-when-cross-origin" />
</customHeaders></httpProtocol>

Node / Express:

app.use((req, res, next) => { res.setHeader('Referrer-Policy', 'strict-origin-when-cross-origin'); next(); });

**WordPress / 常见主机:**大多数托管型 WordPress 和共享主机都允许你通过安全插件、主机控制面板里的响应头面板,或上面的 .htaccess 片段来加响应头。如果你在 Cloudflare 后面,Cloudflare 的方法最干净,一次就全站生效。

**应用之后:**打开你的网站并重新运行检查,或用浏览器的开发者工具(网络标签页 → 点击主文档 → 响应头)确认 Referrer-Policy: strict-origin-when-cross-origin 存在。

常见错误

关于相关响应头的简短说明

Referrer-Policy 与我们检查的另外几个网页安全响应头并列——Content-Security-Policy、X-Frame-Options、X-Content-Type-Options,以及几个高级的跨源响应头。它们防护的是不同的东西,所以有其一并不覆盖其余。如果你的 Referrer-Policy 缺失,值得请修它的人同时确认其他标准响应头也已到位,因为它们通常配置在同一个地方,顺手做完不另外花成本。

简而言之

Referrer-Policy 是你评分卡上最便宜、最安全的隐私修复:一行,约五分钟,没有弄坏任何东西的风险,而且免费。它阻止访客的浏览器把你私密的页面网址——以及其中所含的任何个人数据——悄悄交给他们点过去的每一个外部站点。把它设成 strict-origin-when-cross-origin,确认它在每个页面上都已生效,那个中等严重级的漏洞及其 15 分就堵上了。

常见问题

我不懂技术——这真的是我能处理的事吗?

能,而且它是整张评分卡上最容易修的之一。它只是由负责你网站或主机的人加的一行设置,在 Cloudflare 这类服务上更是几下点击、完全不用写代码。把下面的如何修复一节交给他们。它免费、约五分钟,而且不像某些安全设置那样,它不会弄坏你网站上的任何东西。

这里的来源页到底是什么意思?

当有人从你的页面点击链接前往另一个网站时,他们的浏览器会附上一张便条,说明他们从哪个页面过来——这张便条就叫来源页(referrer)。对正当的分析它确实有用。问题是默认情况下,这张便条往往包含你的完整页面网址,而不只是你的域名。如果那个网址里含有任何私密内容,它也会一并被分享。Referrer-Policy 让你把便条裁剪到只剩你的域名,或干脆关掉,这样就不会泄露任何敏感信息。

如果我的网站不处理付款,这还值得费心吗?

几乎可以肯定值得。你不需要有结账功能,网址里也照样会有私密信息——搜索框、联系表单、账户页、文档链接和密码重置邮件都会例行地把数据放进地址栏。而且即便完全没有个人数据,把你的内部页面路径泄露给访客点过去的每一个外部站点,也等于免费送给竞争对手和爬虫一张你网站的地图。修复只要不花钱、五分钟,几乎没理由略过。

开启这个会弄坏我的网站或我的分析吗?

不会。这是安全的响应头之一——它只控制有多少地址细节被分享给别的网站,不影响链接是否能用。推荐的设置仍会把你的域名发给外部站点,所以正当的引荐分析照常工作;它只是不让完整的私密网址跟着一起走。无需仅观察的试运行,也不必先在测试环境验证。

这是个隐私合规问题,还是只是锦上添花?

它可能是一个实实在在的合规问题。数据保护规则要求你只收集和分享所需的最少个人数据,并要知道你的数据流向了谁。如果你的网址里带着个人标识,又在没有任何协议的情况下泄露给广告商或分析公司,那就是审计方和监管机构都认得的数据最小化失职。对大多数企业来说,这条响应头是堵上该漏洞的一种廉价、具体的办法。

这会影响我的评分,还是只是建议?

它会影响你的评分。Referrer-Policy 检查是计分项,在网页安全类别下最多值 15 分。缺失响应头被标为中等严重级。注意一个陷阱:把响应头设成 unsafe-url 或 no-referrer-when-downgrade 这类宽松值得零分——和完全没有响应头一样——因为这些取值仍会泄露完整网址。要拿到分数,你需要一个像 strict-origin-when-cross-origin 这样合理收紧的取值。