V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
owen800q
V2EX  ›  程序员

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

  •  3
     
  •   owen800q · 2023-07-26 23:10:31 +08:00 · 3451 次点击
    这是一个创建于 488 天前的主题,其中的信息可能已经有所发展或是发生改变。

    四名 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

    25 条回复    2023-09-03 16:38:45 +08:00
    bertonzh
        1
    bertonzh  
       2023-07-26 23:30:49 +08:00
    看上去跟爬虫没有任何关系。一个网站能不能爬,取决于网站的服务端安全措施,而不是访问网站的客户端。
    爬虫 -> 客户端
    反爬虫 -> 服务端

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

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

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

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

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

    Chrome 上不知道要怎么实现,不过安卓端谷歌可以控制( SafetyNet 之类的),Windows 端现在也强制 TPM 了,理论上似乎是可以 TPM -> Secure Boot -> 可信 Kernel -> 可信 App -> 签名一条龙。
    lizhenda
        21
    lizhenda  
       2023-07-27 09:17:15 +08:00
    确实有点恶心了
    ww940521
        22
    ww940521  
       2023-07-27 10:03:51 +08:00
    保护版权好事情啊。
    MrKrabs
        23
    MrKrabs  
       2023-07-27 10:07:42 +08:00
    信谷狗早死早超生
    owen800q
        24
    owen800q  
    OP
       2023-07-27 10:10:44 +08:00 via iPhone
    @ww940521 这对爬虫是致命性打击,到时候又一大堆人失业啊,至少我司 9 成 web 数据采集的项目绝对挂掉🥲
    zzzkkk
        25
    zzzkkk  
       2023-09-03 16:38:45 +08:00 via Android
    @owen800q
    google 的爬虫不需要验证吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1364 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 104ms · UTC 17:36 · PVG 01:36 · LAX 09:36 · JFK 12:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.