工作方式
斗篷系统怎么工作
你在落地页上加一段脚本。第一层是这个品类都有的,第二层是我们造的, 第三层让第二层值回票价。
三层判定各做什么
网络归属,在你的页面渲染之前
作用在请求本身:IP、它属于哪个网络、带了什么头。
平台自有网段、自报的爬虫身份、机房网络都在这一层解决。 这是用来接「自己报身份」那批流量的:TikTok 扫描器全部来自字节自有网络, Meta 的自动抓取全部来自 Meta 自己的网段。
这一层有两个点是多数实现做错的。一是 ASN 解析对某些大型 IPv6 段会直接返回空, 所以官方网段是与 ASN 并列匹配,不是二选一。二是同一个爬虫 token 出现在住宅宽带上时, 按真实顾客处理 - 因为那本来就是。
浏览器环境引擎,在页面加载之后
只对第一层两边都归因不了的访客生效。这一层是这个品类普遍没有的。
从普通云主机过来、请求头完整、UA 完全正常的审核流量,对任何只看请求的东西都是隐形的。 在投流量里确实出现过这样的会话,来自普通云服务商,挑不出任何破绽。
我们对它们跑的是一套跨层一致性检查,这套引擎原本是为反方向的问题造的: 判断一个浏览器有没有在谎报自己是什么。审核环境正是一台虚拟机把自己说成一部手机。 有效的是一小组环境特征的组合。具体是哪些我们不写在公开页上:这一层的规则一旦被平台绕过就会静默失效, 把配方印出来等于替对方列好修复清单。
这一层放行之后,报价页在同一个 URL 上换进来;不放行、或者这一层根本没机会跑, 留在屏幕上的就是合规页。
反哺,别让一次判定只管一次访问
持续运行,把确认过的浏览器判定变成 IP 级标签。
浏览器判定需要访客停留数秒,所以它既精准又稀有。 把它读成「这一次访问的结论」,等于扔掉它几乎全部价值。
确认过的审核环境会变成来源地址的标签,此后来自同一地址的每一次请求都被覆盖, 包括 0.1 秒就走、从不执行脚本的那些。这是从稀有的高精度信号走到全量覆盖的唯一通路。
顺序在两个方向上都重要。把浏览器指纹放最前面,等于把简单的一半解两遍、难的一半没解; 而只看请求的过滤器根本走不到难的那一半。 第一层便宜且确定,第二层昂贵且稀有,第三层是让第二层付得起的那一层。
三种架构,三个判定时刻
这件事有三种做法,区别只有一个:判定在什么时候做。而那决定了做判定时有什么证据可用。
服务端跳转必须在发出第一个字节之前决定,所以它永远看不到浏览器知道的任何事, 够用来接「自己报身份」的那批,此外无能为力。 把判定放在页面上要多花几百毫秒,换来的是真正能把归因不了的审核员和买家分开的那一层。
它还把默认方向反了过来,而这个方向是对的。跳转型必须先主动认出爬虫,才谈得上扣住报价页; 页内型是对所有不执行脚本的东西默认扣住,不需要认出任何人 - 而实测下来,那正是大部分审核流量。
真人审核员与抓取器的差别
Meta 自有地址上的会话里,绝大多数是自动抓取,一瞬即走;人工审核极少,一次要待上好几分钟。 我们见过的最长一次,审核员把整个结账流程走完了 - 填表单、提交付款,一步没落。
操作含义很直接:给审核方看的那一版页面,不能只是首屏看着像,它要经得起一个人读四分钟并且真的去下单。 这件事没有任何过滤器能替你做。
还有一个坑:审核方打开的是它抓到的那条完整 URL,里面带着某个真实用户的会话标识。 按会话标识打标会把真实顾客标成审核流量,所以只能按 IP 或网段打标。
常见问题
- 为什么用 JS 判定而不是服务端判定?
- 因为最难的那一格只在浏览器里显形。从普通云主机过来、请求头完整、UA 完全正常的审核流量,服务端看不出任何破绽。而且把判定放在浏览器里还有一个副作用:任何不执行脚本的东西默认就只拿得到合规页 - 实测下来,大部分审核流量正好不执行脚本。
- 访客禁用了 JS 会怎样?
- 看到合规页。这是我们要的失败方向:不确定的时候扣住的是报价页,永远不会反过来。
- 地址栏会变吗?
- 不变。切换发生在页面内部,没有跳转、没有第二个域名,也没有可供追踪的跳转链。
- 判定要多久?
- 第一层在你的页面渲染之前就有结论。第二层在脚本加载完就跑,不等无交互兜底计时器 - 买家不该在过滤器拿主意的时候盯着合规页看。
- 什么情况它挡不住?
- 一个用真浏览器、行为正常、而且来自我们归因不了的地址的真人审核员。这个品类没有任何一家诚实地挡得住,我们宁可写清楚,也不给你编一个数字。
加入等待名单
还没有可用的账号。留个邮箱,开放内测时我们通知你,并附上你投放的流量源对应的配置说明。