Cloudflare拦截页每天出现4.2亿次,但没人讨论过它的产品逻辑。

我本想读一篇叫《Not Chaos》的Medium文章,结果撞上了一堵墙——不是404,不是付费墙,而是一套精密的"反机器人验证系统"。页面显示"Just a moment...",背景是一段被编码的JavaScript,以及一个360秒后自动刷新的倒计时。

打开网易新闻 查看精彩图片

这堵墙本身,比那篇被挡住的文章更值得拆解。

打开网易新闻 查看精彩图片

正方观点:这是必要的安全基础设施

Cloudflare这套系统的核心目标很明确:区分人类与自动化程序。页面源码里藏着完整的战术配置——`cType: 'managed'`表示这是托管式挑战,`cFPWv: 'b'`标记指纹版本,`cRay`是唯一追踪ID。

从产品设计角度看,这套机制解决了三个真实痛点。

第一,DDoS攻击的规模化防御。2023年某次针对GitHub的攻击达到1.35Tbps,传统防火墙在这种流量面前形同虚设。Cloudflare的"等待室"模式能把恶意流量卡在验证层,只放行通过JavaScript挑战的真实浏览器。

第二,爬虫与数据滥用的遏制。Medium作为内容平台,其核心资产是文章数据。无限制的自动化抓取会摧毁商业模式——不仅是带宽成本,更是搜索引擎排名的稀释。验证墙相当于给数据加了把动态锁。

第三,用户体验的隐性优化。页面显示"Enable JavaScript and cookies to continue",这不是技术无能,而是刻意的设计选择。通过把责任推给用户的浏览器设置,系统避免了直接说"我们认为你是机器人"的对抗感。

源码中的`cUPMDTk`参数更值得玩味。这是一串经过混淆的URL令牌,包含文章路径`/@charlesazuh840/not-chaos-41e0b6f205fb`和来源标记`source=rss------relationships-5`。每个被拦截的请求都被精确追踪到入口渠道——RSS订阅、社交媒体、直接访问——这种颗粒度的数据采集,是优化拦截策略的基础。

从工程视角看,这是优雅的解决方案:用一道轻量验证门,替代了后端沉重的身份认证系统。360秒的刷新间隔、SVG格式的错误图标、system-ui字体栈——每个细节都在平衡安全性与加载速度。

反方观点:这是用户体验的系统性牺牲

但让我们看看这堵墙的另一面。

被拦截的用户经历了什么?一个空白页面,一段技术术语,一个无法控制的等待。页面明确写着"noindex,nofollow"——这意味着搜索引擎不会收录这个拦截页,但也不会继续抓取背后的真实内容。对于通过RSS发现这篇文章的读者,这是双重断裂:订阅源承诺了内容,链接却通向死胡同。

更深的问题在于"假阳性"的不可申诉性。页面没有提供"我是人类"的替代验证路径——没有验证码,没有登录选项,只有JavaScript执行和cookie启用。Tor浏览器用户、隐私插件使用者、某些地区的移动网络,都可能被误伤。而误伤者没有任何反馈渠道,只能等待360秒后重试,或放弃。

打开网易新闻 查看精彩图片

Medium的内容创作者也在承担隐性成本。作者`charlesazuh840`写了一篇关于"非混乱"(Not Chaos)的文章,标题本身带有反讽意味——但读者遭遇的恰恰是混乱的访问体验。RSS订阅者(`source=rss------relationships-5`中的分类标签)通常是高价值读者,他们主动选择关注关系类内容,却被平台的安全策略挡在门外。

从商业逻辑看,这是平台与创作者的利益错位。Cloudflare的客户是Medium,不是作者;Medium的客户是广告商和付费订阅者,不是RSS读者。验证墙的优化目标是最小化恶意流量成本,而非最大化内容可达性。当这两个目标冲突时,后者被牺牲。

技术细节也暴露了妥协的痕迹。`cTplV:5`表示模板版本5,说明这套界面经历过至少4次迭代;`cITimeS: '1776943451'`是Unix时间戳,精确到秒的拦截记录。这些数字背后,是持续运行的A/B测试——但测试的指标是"拦截率"还是"用户完成率",外界无从得知。

我的判断:安全与开放的边界正在重新定义

这件事的重要性不在于Cloudflare或Medium的具体选择,而在于它揭示的行业趋势:开放网络的默认状态,正从"允许访问"转向"验证后访问"。

这个转变有三个驱动因素。

第一,AI爬虫的爆发。2024年以来,大模型训练引发的数据抓取规模远超传统搜索引擎。Cloudflare的验证系统专门针对"看起来像自动化但模拟人类行为"的新型爬虫,这解释了为什么配置如此复杂——对手进化了,防御必须更精密。

第二,平台权力的集中。Medium依赖Cloudflare,Cloudflare服务全球20%的网站。这种层级化的安全外包,意味着少数几家公司决定了数十亿用户的访问体验。源码中的`cZone: 'medium.com'`是一行代码,也是一道边界——在这个区域内,Medium的规则让位于Cloudflare的规则。

第三,RSS的衰落与挣扎。来源标记中的`relationships-5`是Medium的RSS分类编号,这个细节本身就说明问题:RSS作为开放协议,正在被平台的安全策略边缘化。主动订阅者遭遇的 friction(摩擦),远高于算法推荐的用户。

对于科技从业者,这个案例提供了具体的决策框架。如果你在设计类似系统,需要回答:验证失败的用户的替代路径是什么?数据追踪的边界在哪里?创作者的内容可达性是否被纳入核心指标?

如果你是内容消费者,这件事提醒你:开放网络的体验正在碎片化。同样的链接,在不同设备、不同网络、不同时间,可能指向完全不同的结果。那篇《Not Chaos》或许讨论的是人际关系中的秩序感——但获取它的过程,本身就是混乱的隐喻。

最终,我没有读到那篇文章。页面源码里有一行被注释掉的noscript提示:"Enable JavaScript and cookies to continue"——这句话的时态很有趣,不是"请启用",而是"启用以继续",仿佛这是一个已经完成的条件句,而我只是还没满足它。