大约从去年某个时候起,互联网开始一天好几次地要求你证明自己是人类。找红绿灯、找斑马线,网店肯给你看一眼价格之前还得先转上一圈的复选框。Google 会中断你的一次搜索,提示”您的计算机网络中存在异常流量”。你什么都没改,却突然发现自己被挡在了每一扇门外。
实际发生的事情是这样的:在每一个这样的页面加载之前,都有一个风险引擎给你的这次访问打了分,而你的分数偏低。人机验证(CAPTCHA)并不是网站在小心谨慎,而是网站对你这个具体的访客没有把握。
人机验证是对”中间地带”的判决
现代反机器人系统在向你提问之前就已经做出了决定。Google 的 reCAPTCHA v3 会给每个请求打一个 0.0 到 1.0 之间的分数,并且从不显示验证题,连它的前代 v2 出名的那个”我不是机器人”复选框都没有;网站自行选定一个阈值,然后悄悄据此行事。Google 自己的文档说得很直白:分数取决于你与网站的交互方式,而不是你解出了什么题。Cloudflare 的”确认您是真人”验证框(与其 Turnstile 组件采用同一套技术)遵循同样的逻辑:检查浏览器、检查连接,让绝大多数访客什么都不用做就直接通过。你会遇到的第三家厂商 hCaptcha,给风险打分的方式也如出一辙。
验证题就是”不确定”落在页面上的样子:被认定是人类的流量永远见不到它,被认定是机器人的流量会看到拦截页,而所有引擎拿不准的人,就只好去点自行车了。“为什么总是要人机验证”这个问题,真正的意思是”为什么每个风险引擎都把我归入拿不准那一档”,而这背后只有少数几个你真正可以逐一排查的原因。
头号嫌疑人:你的 IP 信誉
风险引擎对整个互联网的地址空间都记着账。来自 Comcast 或 Vodafone 这类网段、有着多年平淡无奇住宅历史的请求,起点就在高分区。来自数据中心网段的请求则从低分区起步,因为那里正是爬虫聚居的地方,而引擎早已在你这个 IP 上见过成千上万个爬虫。
这就是人机验证会跟着你从一个网站蔓延到另一个网站的原因。这个分数既不挂在你的账号上,也不挂在你的浏览器上,而是挂在所有这些网站看到你到达时所用的那个地址上。
最经典的情形是 VPN:你的流量从一个与几百个陌生人共用的托管网段流出,其中只要有几个人在跑机器人,这个地址就会变臭,连累其余所有人。有的出口很干净,有的则是重灾区,这也是为什么换一台服务器有时能药到病除。
本页的小工具会显示你的连接此刻登记在谁的名下。如果那个名字是一家托管服务商或某个 VPN 品牌,而不是一家你每月向它交网费的 ISP,那么你多半已经找到了原因。
为什么手机和 iPhone 上也会这样
移动运营商会把海量用户塞在同一个公网地址后面(运营商级 NAT),因此只要出一个滥用者,就能毒害一整个小镇的人共用的那个地址。“为什么手机上总是要人机验证”的诚实答案就在这里:跟你的手机没有任何关系,全在于你和谁共用它的地址。
iPhone 还多了一层。开启了 iCloud Private Relay 的 Safari 会通过 Apple 的内容分发合作伙伴(Cloudflare、Akamai 和 Fastly)运营的共享出口地址上网,而一些网站会把这些地址当成普通代理网段来对待。针对出问题的网站暂时关闭 Private Relay,是检验它是否是罪魁祸首的快捷办法。
Google 的”您的计算机网络中存在异常流量”提示
Google 这堵墙是按流量规模触发的:它看的是你整个 IP 地址的查询模式,而在共享地址上,这通常意味着别人的查询。Google 的支持页面还点名了一个人们容易忘记的可能:恶意软件。网络里只要有一台被感染的设备在悄悄发送自动搜索,就足以让这个地址失信,连累它背后的每一个浏览器。如果这条提示在家庭网络上反复出现,先给你的设备做一次安全扫描,然后把路由器断电重启——许多 ISP 会重新分配一个动态 IP,等于直接换上一个信誉记录全新的地址。
你的浏览器是你的品格证人
评分的另一半来自浏览器本身,而最扎心的讽刺也在这里:你越是努力保护隐私,就越是长成一副”匿名嫌疑人”的模样。
一个保留 cookie 的浏览器是有历史的:它访问过哪些网站、通过过哪些验证,都有据可查。如果每次关闭都清空 cookie,或者常年住在无痕模式里,你就是每天在每一扇门前都以陌生人的身份自我介绍。而陌生人是要被查证件的。reCAPTCHA 尤其依赖对”回头客”浏览器的识别,这也是为什么连环验证题往往正是从切换到无痕模式的那一刻开始的。
隐私扩展则会以另一种方式帮倒忙。那些伪造 canvas 读数或随机化指纹的工具,靠的是改写浏览器的内置函数,而被改写过的内置函数是可以被检测出来的——和暴露自动化隐身插件的是同一个破绽。在风险引擎眼里,一个撒谎的 API,比一个实话说得不中听的 API 更糟糕。而如果你的 User-Agent 自称是一种浏览器,底下的引擎却分明是另一种,你就亲手制造了我们在你的 User-Agent 在撒谎中讲过的那种自相矛盾。
这些信号没有哪一个能单独给你定罪;它们是累加的:
试着逐个切换风险引擎可能在你这次访问中看到的标记:
通常,一个标记就足以把你送进验证题区间;第二个标记则往往让你直接跌穿它,落到拦截页和无限循环里。解决之道很少是”再多做点什么”,而是找出你正举着哪几面旗子,然后把它们放下来。
没完没了的”确认您是真人”循环
这件事最折磨人的版本,是那个永远做不完的验证:你点了复选框,页面一刷新,复选框又回来了。通过一次 Cloudflare 验证会为你换来一枚通行 cookie(cf_clearance),网站就是靠它记住你已经通过了。如果你的浏览器留不住这枚 cookie——针对该站点屏蔽了 cookie、某个扩展在粉碎它、某项设置当场把它抹掉——那么页面还没加载完,你的通行证就已经被忘掉了,到下一个请求时你又成了一个崭新的嫌疑人:
这个循环是失忆,不是惩罚:没有那枚 cookie,网站在每一个请求上都是初次见到你。如果你正被困在循环里,cookie 是第一个要查的东西,而上面的小工具正好会查它。
为什么人人都突然遇到更多人机验证
2024 年,自动化流量超过了人类流量:Imperva 的 Bad Bot Report 测得自动化流量已占全部网络流量的 51%,其中 AI 爬虫和机器人是主要推手。网站的回应是把风险阈值调得更严。阈值越严,“拿不准”的中间地带就越宽,而验证题恰恰就住在中间地带。引发这轮收紧的机器人大多看不到人机验证;看到它的,是那些配置稍显异样的人类。
如何摆脱人机验证:找到你的破绽,然后修掉它
- 读一读本页的小工具。 它会报出你的网络运营商名称,并检查浏览器侧的标记:cookie 存储、自动化标志、被篡改的 API。顶部若是一个数据中心的名字,那是 IP 问题;除此之外被标记的任何一项,都是浏览器问题。
- 把 IP 这个变量隔离出来。 如果你在用 VPN,就断开它(或改用手机的移动数据)加载同一个网站做对比。如果人机验证消失了,问题就出在出口地址——换个服务器或换家服务商即可,不必弃用 VPN。在没有 VPN 的家庭网络上,把路由器断电重启通常能从 ISP 那里拉到一个新 IP。
- 像检测系统那样审视你自己。 我们首页的实时行为监测面板会实时给你的光标物理特征和点击来源打分,而完整浏览器扫描会同时运行指纹和泄露检查。
- 别再一副乔装打扮的样子。 让你信任的网站保留它们的 cookie,保持浏览器为最新版本,宁要一份诚实的指纹,也不要东拼西凑一堆各自都会留下指纹的伪装扩展。就连广告拦截器也是可以被检测的,你的拦截器拦广告的具体方式同样会进入你的画像。
- 在管理多个账号? 那你的问题就是规模化的一致性:每个配置文件都需要一个可信的独立 IP 和一份自洽的指纹,否则每一个都会继承其他账号的信誉。这正是 Incogniton 的专职工作:真实、彼此独立的浏览器配置文件,让风险引擎能够逐个打分,而不是连坐。
下一次再有复选框要你自证是人时,你会知道它真正在掂量什么:你的 IP、你的 cookie 和你的浏览器,彼此的说法是否一致。让它们说到一处去,验证题就会重新变回只发生在别人身上的事情。