Google 推出 Web Environment Integrity 极大争议性,会否影响 web 爬虫?

2023-07-26 23:10:31 +08:00
 owen800q

四名 Google 开发者——其中至少一人是隐私沙盒( Privacy Sandbox )团队成员——提出了一个新的 Web 标准 Web Environment Integrity API 。该 API 在功能上类似苹果的 App Attest 和 Android 的 Play Integrity API ,以 Play Integrity API 为例,如果它检测到 Android 设备获得了 root 访问权限,不管是用户做的还是恶意程序做的,那么特定应用程序如银行或钱包应用将会拒绝运行。换句话说,Google 想要在 Web 上创造某种 DRM 。这一提议引发了广泛争议。浏览器 Firefox 的开发商 Mozilla 已经表达了反对意见,

相关实现已 commit 到 chromium

https://github.com/chromium/chromium/commit/6f47a22906b2899412e79a2727355efa9cc8f5bd

对这个 API 设计不太了解,没理解错的话,只有通过运行环境验证,网话会下发一个 token ,后续所有访问,包括 API 请求要有这个 token ,才会允许返回数据. 业界应该不少数据采集项目,这对 web 爬虫界是噩梦吗

參考: https://interpeer.io/blog/2023/07/google-vs-the-open-web/ https://news.ycombinator.com/item?id=36875226 https://news.ycombinator.com/item?id=36817305 https://news.ycombinator.com/item?id=36778999 https://news.ycombinator.com/item?id=36785516

3434 次点击
所在节点    程序员
25 条回复
bertonzh
2023-07-26 23:30:49 +08:00
看上去跟爬虫没有任何关系。一个网站能不能爬,取决于网站的服务端安全措施,而不是访问网站的客户端。
爬虫 -> 客户端
反爬虫 -> 服务端

这个 API 是客户端( Chrome )引入的,关反爬虫什么事呢?
bertonzh
2023-07-26 23:35:21 +08:00
我刚才再看了下,是我理解错了,sorry
pocarisweat
2023-07-26 23:35:37 +08:00
Mozilla 的反对声音从来都只能表个态,这么多次,Chromium 先斩后奏 Firefox 也只能跟了,反正也不会真有多少人迁移到 Firefox. Chrome 的用户粘性是比苹果高多了,认识的 iOS 开发几乎没有不骂苹果的,但前端开发真有不少人把谷歌当爹捏。
bertonzh
2023-07-26 23:37:44 +08:00
尴尬了,v2ex 没办法删掉评论吗。。
owen800q
2023-07-26 23:40:28 +08:00
@bertonzh 现实是一大堆外国网站没有反爬,不少项目的爬虫都是依赖用 headless chrome 直接解析 Html 拿到的数据,至少我司接近 9 成的项目都是这样,不可能花时间逆向 API, headless 肯定是没法拿到 token 的,这就相当于原来没有反爬措施的网站多了一层天然屏障, 生产环境在跑的服务都会挂掉
bertonzh
2023-07-26 23:42:21 +08:00
我又思考了一下,这个措辞会对爬虫造成一定的影响,但是并不是噩梦。
简单说,Chrome 是开源的,爬虫方只要修改一下 Chrome ,把这个检测绕过(让服务端以为是安全环境)就行了,这个应该在很容易实现。

争议的点应该是针对用户隐私方面的(大多数用户也不会安装修改版 Chrome ,除非 Edge 等去掉这个东西),我觉得。
bertonzh
2023-07-26 23:48:01 +08:00
总之,我在一楼的结论是没问题的,网站反爬是服务端的需求,只能服务端来做。客户端能做的比较有限,尤其是开源产品。
owen800q
2023-07-26 23:49:42 +08:00
@bertonzh 我看了下草稿,token google 是建议由 CDN 方下发,类似 cloudflare, 通过环境验证后,CDN 下发 token, 同时在 CDN 会下发一个私钥后端,只有和后端的对得上,网站方才会返回数据, 就算自己编译 chrome, 去掉了环境检测,还是没办法绕过后端验证
wushenlun
2023-07-26 23:52:15 +08:00
问题是这个 api 能不能被 hook ,如果能这么做除了干扰正常用户,几乎没有意义
bertonzh
2023-07-26 23:53:26 +08:00
@owen800q
但是 CDN 下发到哪里呢? Chrome
环境验证是谁来做呢?还是 Chrome 吧,应该不可能是 CDN 来验证你的环境

最简单的办法,你把 Chrome 里面环境验证的这部分代码改成始终 `return true`,不就绕过了吗?
bertonzh
2023-07-26 23:57:52 +08:00
原来这个验证是远程的?
bertonzh
2023-07-26 23:59:06 +08:00
那看来还是我理解的不对,这比我想的恶心很多啊。。。
有点天网的感觉了
bertonzh
2023-07-27 00:05:30 +08:00
不过,如果第三方 Attestation API 挂掉了会如何?而且国内访问国外的 Attestation API 肯定访问不了,那么到时候应该是国外有国外的 Attestation 服务,国内有国内的。。。那么 Attestation 的公正性和权威性是如何保证的呢?
bertonzh
2023-07-27 00:13:16 +08:00
现在又感觉这个东西就是一个外挂版的 Cloudflare 防火墙。
传统的 Cloudflare 防火墙是拦在用户和网站服务器之间的。
这个东西,是在用户和服务器之外的第三方,形成了一个类似三角形的结构。

相比之前,传统的 Cloudflare 防火墙是过滤了所有流量,网站的成本较高。
而这个方案下,主流量还是用户和网站之间的,跟“外挂防火墙”之间只存在少量的联系,所以网站不需要支付对应的防火墙成本。防火能力也比较局限。
owen800q
2023-07-27 00:56:55 +08:00
@
@bertonzh 感觉除非可以欺骗 Attestation 当前是正常环境。拿到 token 才能通过后端验证,这玩意是不是抄国内大𠂆的无感验证码啊,感觉有点像
bertonzh
2023-07-27 00:58:05 +08:00
@owen800q 差不多是这个意思
james122333
2023-07-27 01:28:41 +08:00
这太王八了 差不多要弃用了
Jirajine
2023-07-27 06:04:43 +08:00
早说过让 Google 掌握 web 标准的后果,现在后果来了。
以后银行、openai 、nf 等网站只能用 chrome/edge 打开,chromium 和各种 fork 修改版、或者装了不被允许的插件都通不过验证。当然也包括基于 headless 浏览器的爬虫。Firefox 反对那就 Firefox 也打不开,反正它又没有用户量。

欧盟别在哪里纠结什么手机能不能换电池了,赶紧立法禁止一切 root of trust 不包括用户的 trusted computing 。
whileFalse
2023-07-27 06:22:22 +08:00
@owen800q cdn 怎么检测你的环境的?
mrtctl
2023-07-27 07:32:26 +08:00
@whileFalse 看了下有点类似于苹果的 Private Access Token ?由苹果验证 iOS 设备的真实性 & 访问频率,然后返回签名。浏览器带着签名去访问网页,服务器验证是苹果签发的再放行。

Chrome 上不知道要怎么实现,不过安卓端谷歌可以控制( SafetyNet 之类的),Windows 端现在也强制 TPM 了,理论上似乎是可以 TPM -> Secure Boot -> 可信 Kernel -> 可信 App -> 签名一条龙。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/960032

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX