
全球隐私控制的影响
过去几年,隐私一直是万维网联盟 (W3C) 的关注焦点,他们发布了隐私原则,浏览器供应商也在努力开发将取代第三方 Cookie 的各种工具。因此,全球隐私控制 (GPC) 获得关注并走向标准化也就不足为奇了,隐私工作组最近发布了首个工作草案。本文将探讨该草案,以及它对网站所有者和希望使用 GPC 的用户意味着什么。
信任与数据收集
根据英国政府伦理与创新中心的数据,57% 的受访者认为收集个人数据“有助于创建造福他们个人的产品和服务”。只有 46% 的受访者信任大型科技公司会让他们决定如何使用自己的数据,而对于社交媒体公司,这一比例则降至 31%。
我们可以从中解读出,大多数受访者不信任社交媒体和大型科技公司在与其数据相关的决策和同意方面。用户显然希望对其个人数据的收集和共享方式拥有更多控制权,但要找到一个易于控制和执行的平衡点则很微妙。
GPC 和“请勿追踪”(DNT)
这并非首次有跟踪预防机制抵达 W3C 并被浏览器实现。2009 年,“请勿追踪”(DNT) 标头被创建,作为一种让网络用户表达其跟踪偏好的方式。虽然它被广泛应用于浏览器,但网站的采用率却很低。
DNT 的主要问题在于其缺乏法律和监管支持。网站所有者可以自行决定是否遵守 DNT 信号,如果他们选择不遵守,也不会面临法律后果。而 GPC 的不同之处就在于此。
撰写本文时,加利福尼亚州总检察长已建议遵守 GPC 以符合CCPA。同时也有意与欧盟的 GDPR 合作。
根据CCPA-REGULATIONS §999.315,GPC 信号将用于指示来自全球隐私控制的“请勿出售”请求,适用于该浏览器或设备,或者(如果已知)消费者。根据 GDPR,GPC 信号的目的是传达一项通用请求,即数据控制者应限制用户个人数据向其他数据控制者的销售或共享(GDPR 第 7 条和第 21 条)。随着时间的推移,GPC 信号可能会用于指示其他司法管辖区的权利。– globalprivacycontrol.org/#about
该信号还得到了各种浏览器和扩展程序的支持,包括 Mozilla 的 Firefox、Brave 和 DuckDuckGo 的隐私浏览器。
GPC 与正在讨论和开发的其他提议不同之处在于,它赋予了网络用户权力。Google 正在 Web Platform Incubator Community 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 支持资源,并包含以下成员:
{
"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 标头来实现侦听器。Express 应用可能如下所示:
// Any route
app.get("/", function (req, res) {
// Check for a `Sec-GPC` header:
const gpcValue = req.header("Sec-GPC");
if (gpcValue === "1") {
// Signal detected
optOutUser(userId);
}
});
您也可以使用浏览器中的 globalPrivacyControl
属性。
const gpcValue = navigator.globalPrivacyControl;
if (gpcValue) {
// Signal detected
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 隐私浏览器的最新版本中提供,用户可以在其设置中开启此信号(PDF)。除了浏览器配置之外,GPC 扩展也适用于 Microsoft Edge 和 Google Chrome。
开发者可以使用 express-gpc 中间件 在 Express 应用中测试 GPC,您可以使用 npm i express-gpc
将其添加到您的项目中。
总结
GPC 是一项令人兴奋的规范。在众多专注于私密广告的公司中,有一项规范将网络用户的需求放在首位,这令人耳目一新。随着浏览器支持的不断增加以及开发者集成需求的减少,这是朝着提高网络用户透明度和控制权迈出的重要一步。
Lola Odelola 是一位网络标准技术专家,致力于让网络标准对开发者更易于理解。Lola 在 W3C 技术架构组任职,并作为 W3C 特邀专家参与多个 W3C 工作组。