文章

验证码的尽头是“互相伤害”,用 PoW 拦截 AI 爬虫的底层逻辑

AI 摘要

从最早的扭曲字符、数字验证码,到后来的加减法、滑块拖拽、音频听写,再到如今各种越来越反人类的点选拼图,验证码在过去十几年里不断演化。

它最初的目的就是防止业务接口被自动化脚本滥用。

无论是刷票、撞库、垃圾注册,还是爬虫抓取,本质上都属于同一个问题——如何区分“真实用户”和“机器请求”。

早期的验证码之所以有效,是因为它建立在人比机器更擅长认知前提上,人可以轻松识别扭曲字符、模糊图片和简单语义,而程序做不到。

但这个前提,现在已经开始崩塌了。

既然防不住,那就互相伤害吧

工作量证明(Proof-of-Work,PoW)重新进入 Web 防护,本质上是在提高攻击者的访问代价

它的核心逻辑是你要请求我的服务器资源,就必须对等地付出你自己的硬件代价。

网站不再要求访问者做验证码挑战,而是直接向客户端下发一个轻量级的加密谜题,比如才SHA256,Argon2id、Scrypt等算法。这个过程强制要求访问者的机器(CPU/GPU)在后台进行一段无意义的、高度消耗内存和算力的加密算法。

通过提高单次访问开销,PoW 把问题抛回给了发起请求的一方:你必须衡量利弊,这次访问的收益,是否抵消你硬件开销?

  • 对于普通用户: 这种运算在浏览器后台静默发生,通常只需一两秒钟,完美掩盖在网页加载或表单填写的自然时间里,实现了完全无感的访问体验。
  • 对于自动化脚本: 它们追求的是每秒成千上万次的高频并发。一旦遭遇 PoW 拦截,原本毫无成本的网络 HTTP 请求,瞬间变成了沉重的物理负担。机器会发热,CPU 会满载,电力和云服务器计费会呈指数级飙升,最终在经济账上彻底破产。

抵御 AI 时代的大规模爬虫

在当前的互联网生态下,这种“互相伤害”的机制显得尤为必要。随着大模型时代的到来,服务器面临的最大威胁不仅是传统的 DDoS 或撞库攻击,而是无孔不入的 AI 爬虫

各大搜索引擎、AI 训练集群和数据聚合平台派出了海量的蜘蛛程序(Spiders)。即便其中一部分声称遵守 robots.txt 协议,但这终究只是“防君子”的口头协定。即使是合规的爬虫,其为了获取最新鲜的训练语料所发起的超高频并发请求,也会像寄生虫一样无情地抽干你网站的带宽和数据库性能,严重拖垮正常用户的访问速度。

在这种场景下,PoW就像景区的门票,对于普通用户游玩几次开销几乎可以忽略,但对于依赖高频并发的 AI 爬虫和自动化脚本来说,开销会随着请求规模递增

你想抓取我的网站数据?没问题。但前提是,每请求一个页面,你的爬虫集群就必须先满载运行几秒钟的运算。

总结

当然,PoW 并不是没有代价,它依然会对部分真实用户造成误伤,尤其是在低性能设备、移动端浏览器或者弱网络环境下。

因此,现代 PoW 系统通常不会粗暴地对所有访问者统一施加挑战,而是会结合 IP 声誉、访问频率、行为特征甚至设备可信度动态调整难度。

从某种意义上说,这也是 AI 时代里,个人网站和小型社区对于大规模数据掠夺的一种反抗。