DescopeBuild app, not auth. Create secure and delightful login experiences in minutes with Descope.Let's goAd Don't want to see ads? MDN Web DocsOpen main menu

本文内容

IONOS.com for $1—Act Fast Own a .com for $1/year—includes SSL, email & privacy. Perfect for your next project.Start NowAd Don't want to see ads? Implications of Global Privacy Control title.

全局隐私控制(Global Privacy Control)的影响

Author avatarLola OdelolaMarch 15, 20255 minute read

在过去的几年里,隐私一直是万维网联盟(W3C)关注的焦点,他们发布了隐私原则,并且浏览器厂商也在研究应该用哪些工具来取代第三方 cookies。因此,Global Privacy Control(GPC)受到关注并进入标准制定流程是有道理的,隐私工作组最近发布了第一个工作草案。本文将探讨该草案,以及希望使用 GPC 的网站所有者和用户将如何看待它。

信任与数据收集

根据英国政府的伦理与创新中心的数据,57% 的受访者认为收集个人数据“有助于创建对他们个人有益的产品和服务”。只有 46% 的受访者相信大型科技公司会让他们决定如何使用自己的数据,而当提到社交媒体公司时,这个数字下降到 31%。

我们可以将此解读为,大多数受访者不信任社交媒体和大型科技公司在数据相关的决策和同意方面。显然,用户希望对个人数据的收集和共享方式拥有更多控制权,但要找到易于控制和执行的平衡点是很棘手的。

GPC 与 Do Not Track (DNT)

这并不是跟踪预防机制第一次进入 W3C 并被浏览器实现。2009 年,创建了 Do Not Track (DNT) header,旨在让网络用户表达他们的跟踪偏好。虽然它在浏览器中得到了广泛实现,但在网站上的采用率却很低。

DNT 的主要问题在于它缺乏法律和监管支持。网站所有者可以决定是否遵守 DNT 信号,如果他们选择不遵守,也不会受到任何法律制裁。这就是 GPC 的不同之处。

在撰写本文时,加利福尼亚州检察长已建议观察 GPC 以符合 CCPA。还有与欧盟 GDPR 合作的意图:

GPC 信号旨在根据 CCPA-REGULATIONS §999.315,传达来自全局隐私控制的“请勿出售”请求,该请求适用于该浏览器或设备,或者(如果已知)消费者。根据 GDPR,GPC 信号的目的是传达一项总体请求,即数据控制者限制将用户的个人数据出售或共享给其他数据控制者([GDPR Articles 7 & 21](https://developer.mozilla.org/en-US/blog/global-privacy-control/https:/eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32016R0679))。随着时间的推移,GPC 信号可能旨在传达其他司法管辖区的权利。– globalprivacycontrol.org/#about

该信号还得到了各种浏览器和扩展的支持,包括 Mozilla 的 Firefox、Brave 和 DuckDuckGo 的 Privacy Browser。

GPC 与正在讨论和开发的其他提案的不同之处在于,它赋予了网络用户权力。Google 正在 Web Platform Incubator Community Group 中开发 User-Agent Client Hints 规范,并且 Bounce Tracking Mitigation 已纳入 Privacy Working Group 的章程。虽然这两个提案都有其优点,但它们都没有像 GPC 那样赋予用户选择权。

GPC 如何赋予用户更多控制权

网络用户希望对自己的数据拥有更多自主权。他们想知道谁拥有它、数据流向何处以及原因,并且他们希望能够同意其数据在各方之间的移动方式。GPC 提出了两种浏览器信号,可以作为标头在所有 HTTP 请求中设置。这两个信号将是一个交互和一个偏好,都称为 do-not-sell-or-share,它们的区别在于范围。

交互是按域设置的。例如,网络用户可能希望允许国家医疗服务体系 https://nhs.uk 与其药房或健康保险公司共享其数据,因此他们可以关闭 https://nhs.uk 的 do-not-sell-or-share 交互。同一用户可能不希望 https://tiktok.com 与任何人共享其数据,因此他们将打开 https://tiktok.com 的交互。

交互的范围是一个域,而偏好的范围包括每个浏览器的所有交互。设置偏好即是设置全局隐私控制。

网站所有者眼中的 GPC

要求从一个众所周知的 URI (/.well-known/gpc.json) 返回 GPC 支持资源,格式为包含以下成员的 JSON 对象:

{
 "gpc": true,
 "lastUpdate": "1997-03-10"
}

其含义如下:

gpc gpc 的值可以是 true(服务器打算遵守 GPC 请求)或 false,以表明它不遵守。对于任何其他值,来源的支持是未知的。

lastUpdate 完整的日期 (YYYY-MM-DD) 或日期时间 (YYYY-MM-DDTHH:mm:ss.sssZ),指示声明支持的时间。GPC 标准含义的后续更改不应影响出于法律目的对资源的解释。

对于处理带有 GPC 信号的请求,开发人员可以通过检查请求中的 Sec-GPC HTTP header 来实现监听器。一个 Express 应用程序可能看起来像这样:

// 任何路由
app.get("/", function (req, res) {
 // 检查 `Sec-GPC` header:
 const gpcValue = req.header("Sec-GPC");
 if (gpcValue === "1") {
  // 检测到信号
  optOutUser(userId);
 }
});

或者,您可以使用浏览器中的 globalPrivacyControl 属性:

const gpcValue = navigator.globalPrivacyControl;
if (gpcValue) {
 // 检测到信号
 optOutUser(userId);
}

上面的示例使用占位符 optOutUser(userId) 进行说明,但后端应调用满足用户选择所需的任何逻辑。

如果用户已将 GPC 设置为“true”,则 HTTP 响应将如下所示:

200 OK
Access-Control-Allow-Origin: *
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
…
Sec-GPC: 1

收到 GPC 信号时该怎么办

由开发人员/企业决定如何处理该信号,例如,从第三方跟踪或营销中删除用户的详细信息,遵循与用户选择不共享数据以进行营销时类似的过程。如果在 CCPA 司法管辖区内,则必须遵守该信号以避免法律制裁。

试用 GPC 及浏览器支持

GPC 目前在最新版本的 Firefox、Brave 和 DuckDuckGo 的 Privacy Browser 中可用,用户可以在其设置中启用该信号 (PDF)。除了浏览器配置之外,GPC 扩展 还适用于 Microsoft Edge 和 Google Chrome。

开发人员可以使用 express-gpc 中间件 在 Express 应用程序中测试 GPC,您可以使用 npm i express-gpc 将其添加到您的项目中。

总结

GPC 是一项令人兴奋的规范,在公司过度关注如何进行私有广告的大潮中,拥有一项优先考虑网络用户需求的规范令人耳目一新。随着越来越多的浏览器支持和开发人员不需要太多的集成,这是朝着为网络用户提供更大的透明度和控制权迈出的一步。

Lola Odelola 是一位 Web 标准技术专家,致力于使 Web 标准可供开发人员访问。Lola 在 W3C 技术架构组任职,并以 W3C 邀请专家的身份参与各种 W3C 小组。

上一篇帖子 JavaScript Temporal is coming

MDN logo Your blueprint for a better internet.

MDN

支持

我们的社区

开发者