Cloak技术是本文的核心主题。上个月有个做海外游戏投放的兄弟找我,说他跑Google Ads第三天就被封了。广告账户是新号,素材也过了审,域名是刚注册的,Cloak判断规则用的是最常见的User-Agent加IP黑名单。他说想不通哪里出了问题。
我让他把服务端日志拉出来看了一眼,问题很明显:他在MySQL里存了一套UA黑名单规则,判断逻辑就是“只要命中列表里的爬虫UA就返回安全页,其余全部跳转”。这个逻辑本身没问题,但他在判断之前先查了一次数据库,每次请求的响应时间比正常页面慢了大概400毫秒。Google的风控爬虫不傻,它会记录响应时间、TLS指纹、HTTP头顺序这些信息,一旦发现异常,直接丢进人工复审队列。复审人员打开他的安全页面,发现整页只有一个表单,其他什么都没有,Cloak就成了明牌。
这个案例基本能回答你“Cloak技术怎么防封”这个问题。平台封你,从来不是因为你用了Cloak,而是因为你的Cloak太容易被识别了。下面我拆开讲。
平台是怎么发现你的Cloak的
很多人以为平台风控就是拿个爬虫来访问你的页面,发现内容不一致就封你。实际情况比这个复杂得多。百度、Google、Facebook这些平台的风控系统,至少会从三个维度来判断一个网站是否在搞Cloak。
第一层:IP信誉库和IDC段识别
这层最基础,也最容易被忽略。机房IP、VPS段、IDC段基本都在风控的黑名单里。你如果用阿里云、腾讯云、AWS的IP来跑Cloak,就算你的判断逻辑写得再完美,风控系统一看IP类型,直接就标记为高风险的。
这里有个具体的参数可以参考:百度风控对IDC段IP的检测频率,大概是普通住宅IP的5到10倍。Google的爬虫对机房IP的访问间隔会更短,有时候几秒钟就来一次。如果你用的是机房IP,而且你的Cloak判断逻辑是“只有百度官方爬虫的UA才返回安全页”,那你基本等于在裸奔。
解决办法只有一个,就是买住宅IP。但这个成本不低,一个稳定可用的住宅IP池,一个月至少要几百块。如果你在跑高利润的offer,这笔钱值得花。如果你只是拿低价Cloak来测试,那就要做好被封的心理准备。
第二层:设备指纹采集
这一层是最关键的,也是大多数人做得最差的地方。UA判断已经废了,因为任何懂一点技术的人都能伪造UA。现在风控系统用的是设备指纹,包括TLS指纹(JA3/JA4)、Canvas指纹、WebGL渲染特征、字体列表、屏幕分辨率、时区、语言偏好、AudioContext指纹等等。
给你举个具体的例子。一个真实的Chrome浏览器,它的TLS握手包有特定的指纹特征,这个特征是由浏览器版本、操作系统版本、加密套件顺序共同决定的。你用Python的requests库模拟HTTP请求,就算UA写得跟真的一模一样,TLS指纹一眼就能看穿。百度的风控系统早就接入了JA3指纹识别,Google更不用说了,Chrome本身就是他们的产品。
所以,判断一个访客是真人还是爬虫,至少要看三到五个维度的指纹信息,而不是只看一个UA。我见过太多人还在用“UA包含Googlebot就返回安全页”这种简陋规则,这种规则在2020年之后基本就失效了。
第三层:行为特征分析
这层是玄学,但也是最难绕过的。真实用户访问一个页面,会有鼠标移动轨迹、滚动行为、停留时间、点击热区等行为特征。风控爬虫虽然也能模拟这些行为,但它们的模拟太“完美”了——没有误触、没有停顿、没有返回上一步的操作。
Google的Web Risk团队曾经发过一篇论文,提到他们通过分析鼠标轨迹的“熵”来判断访问者是真人还是机器人。人手的移动是有微小的随机抖动的,而模拟的轨迹往往过于平滑。这个特征一旦被计算出来,基本上很难伪造。
所以你会发现,就算你的判断逻辑再精准,如果你的安全页面做得太简单(比如只有一个空白页),那这种行为特征根本没法模拟。这时候风控系统给你的安全页面打一个高分,直接从技术判断转入人工复审,你就离封号不远了。
导致封号的最常见操作
在讲防封策略之前,先把导致封号的几个常见操作列出来。你在实操中对照一下,踩中任何一个都是高危信号。
- 用同一台服务器同时跑Cloak判断和落地页,IP域名解析都在一起,一查一个准。
- 把Cloak判断逻辑直接写在前端JavaScript里,爬虫直接看源码就能找到跳转URL。
- 所有真实用户跳转都用302,而302响应头的Location字段指向同一个域名,被风控抓取后形成跳转链路画像。
- 安全页面做得太简陋,没有内容、没有图片、没有外链,一看就是个空壳页面。
- 不记录任何日志,被封之后根本没法排查原因,只能盲目换域名重来。
- 判断维度太少,只靠UA或IP,导致大量误判,真实用户被跳转到安全页,转化率暴跌,广告账户质量分下降。
- 跳转比例控制得太高,几乎100%的流量都跳转了,风控系统会把你标记为“高跳转率站点”。
以上任何一个操作,都可能直接导致你的域名被标记,进而被封。而且一旦你的核心域名被标记,就算你换了新域名,如果还是同样的IP、同样的服务器、同样的判断逻辑,风控系统通过关联分析很快就能找到你的新域名。
防封的5个核心策略
下面说具体怎么做。这5个策略是我最近两年在多个项目里实践验证过的,不敢说100%防封,但至少能让你的Cloak活得更久。
策略一:多维度指纹判定,别再用单指标
不要只靠UA和IP来判断。一个相对可靠的判断系统,至少需要采集以下信息:UA、TLS指纹(JA3)、Canvas指纹、WebGL指纹、屏幕分辨率加色深、时区加语言偏移量、Cookie生命周期。
判定逻辑写成加权评分制。比如TLS指纹异常直接扣50分,Canvas指纹为空扣30分,时区与IP归属地不一致扣20分。总分低于60分就判定为爬虫,返回安全页。高于80分才判定为真人,执行跳转。60到80分之间的,可以返回一个中间的缓冲页,让用户点击一下再跳转,这样能过滤掉大部分自动化流量。
这个评分系统可以基于云函数实现,不必自己买服务器。每次请求只做内存计算,不查数据库,保证响应时间在50毫秒以内。
策略二:动态阈值和跳转比例控制
不要把你所有的流量都跳转,留一部分“自然流量”展示真实内容。这个比例可以设置在5%到15%之间,取决于你的目标市场。欧美市场对异常跳转的检测更严格,比例要低一些;东南亚市场可以略高一点。
具体的做法:在判断完设备指纹后,再用一个随机数生成器,决定当前这次请求是跳转还是展示真实内容。这个随机数的种子可以从访客的IP、时间戳、Cookie三者组合来计算,保证同一个访客在一段时间内的行为是一致的,不会出现第一次跳转、第二次不跳转的情况。
策略三:跳转方式的选择
302跳转和JS跳转的选择,不是随便定的。当前主流的Cloak工具有时候支持这两种方式。我的建议是:如果你的目标平台是Google,优先用Meta Refresh或JavaScript跳转,加一个2到3秒的延迟,模拟人类思考过程。如果你的目标平台是百度,服务端302加Cookie标记更稳妥,因为百度的风控对JS跳转的识别率更高。
302跳转要注意一个问题:跳转的目标URL不能是独立的域名,最好是和来源域名在同一台服务器上,走内部路径转发。如果你把用户跳到另一个域名,那这个跳转链路就被风控记录下来了。正确的做法是:用户在页面A请求后端,后端判断完指纹后,直接在服务器端返回页面B的内容,但URL不变。
这里推荐ABcloakPro这类工具里自带的“同域转发”模式,它的原理就是基于上面这个逻辑。如果你在自建,可以用Nginx的sub_filter或者OpenResty的balancer_by_lua来实现,响应头里不要出现Location字段。
策略四:安全页面不能是空壳
安全页面要做得像一个真的落地页。要有内容、有几张图、有内链、有外链,甚至要有流量统计代码。你试想一下,一个网站如果只对你展示空页面,对其他人展示完整内容,这本身就是最大的异常信号。
我见过一个做得非常好的安全页面,是给一个卖保健品的客户做的。安全页是一篇关于健康饮食的科普文章,有配图、有引用、有相关阅读,完全是一个正常的内容页。平台风控爬虫访问这个页面,看到的是一篇正常的文章,就不会再深挖了。
还有一点,安全页面不要用robots.txt去禁止爬虫访问。你越禁止,风控越觉得你心里有鬼。正常页面是允许爬虫访问的,只是返回的内容不同罢了。
策略五:日志留存和归因分析
每次判断请求,都要记录日志。日志至少包含以下字段:用户IP、UA、TLS指纹、判断结果、跳转目标、响应时间、HTTP状态码。如果当天被封,你要能在10分钟内查到今天的日志,分析出是哪个维度的信息暴露了。
日志不要存在本地磁盘,用云日志服务或者其他对象存储,保留至少30天。同时做告警监控:如果判断为爬虫的请求占比突然超过30%,或响应时间突然超过200毫秒,立刻推送告警到手机。
有真实数据做支撑,你才知道改哪里。很多人被封之后一脸懵,都不知道从哪查起,就是没有日志。
两个真实场景复盘
场景一:电商白牌产品跑百度竞价。客户用的是自建Cloak,服务器在阿里云,判断逻辑只有UA加IP黑名单。上线第二天,百度风控的巡查爬虫就访问了他的安全页面,返回的是一张图片,没有任何内容。第三天账户被标记,第四天计划被拒。
复盘后的结论是:他的安全页面没有内容,这是最致命的。整改方案是重新做了一个安全页面,内链到百度收录的一些权威页面,同时加上了百度统计代码。换了新域名,IP换成了住宅IP,判断逻辑升级为设备指纹加行为分析。现在这个项目已稳定跑了两个月没有封号。
场景二:某工具类APP出海跑Google Ads。客户之前用的是市面上某个廉价Cloak工具,跳转方式是JS window.location,没有延迟。跑了一周,Google账户被暂停,申诉两次都没有通过。原因是他们用的那个工具,被Google风控标记过太多次,域名和工具的关联特征早就进了黑名单。
整改方案:自建跳转逻辑,用服务端判断加302内部转发,安全页面做成了产品官网的另一个子页面,页面里的文案和图片都是正常的产品介绍。另外,删除旧域名上所有指向跳转工具的JS代码。再用新域名重新上线,第一周观察期,把跳转比例控制在8%左右,第二周逐步提升到15%。目前的状况是一周消耗五万美金广告费,转化成本在可接受范围,账户没有再被封。
常见问题和解决方案
用住宅IP是不是就不会被封?
不是。住宅IP只是降低IP维度的风险,如果你的其他维度被识破,比如TLS指纹或安全页面空壳,一样会被封。住宅IP是必要条件,但不是充分条件。
Cloak判断一定要放国外服务器吗?
看你的目标市场。如果你做的是百度竞价,服务器放国内加备案域名是最稳的,前提是你的业务合规。如果你跑Google Ads海外业务,服务器放海外,但不要用Google Cloud和AWS,它们对自家平台的风控数据会共享。
换域名能解决问题吗?
如果你只是换域名,不换服务器IP、不换判断逻辑、不换安全页面,那换域名等于白换。风控系统是通过多维关联来追踪的,不是只看域名。
误判导致真人用户被返回安全页怎么办?
降低误判率的方法是增加判定维度,而不是调整阈值。比如加上WebGL指纹,加上行为特征分析。一个好的Cloak系统,误判率应该控制在1%以内。如果你用的是现成工具,一旦发现误判率超过3%,马上检查是不是某些维度的判定逻辑写得太苛刻了。
ASO和SEO场景能用到Cloak吗?
严格来说,Cloak技术本身是一种流量分发手段,不限于广告投放。但在SEO场景下,用Cloak的风险比广告投放高得多,因为搜索引擎的抓取频次远高于广告风控爬虫,一旦被识别,整个域名都会被降权。如果非要用,建议把Cloak控制在一两个二级目录下,不要全站启用。
最后说两句
Cloak技术本身没有黑白,用法决定结果。平台的风控规则一直在变,从最早的UA判断到现在的设备指纹和行为分析,每一轮升级都会淘汰一批技术方案过时的从业者。你如果现在还在用老一套,封号是迟早的事。
我的建议是:先做好自己的判断逻辑,再去想怎么过审和投放。多花时间研究设备指纹和行为特征这两块,这是当前风控技术的核心,也是你防封能力的护城河。有条件的话,自己搭一套简单的Cloak系统,别依赖市面上的廉价工具。工具越好用,用的人越多,被风控标记的概率就越大,这是必然规律。
好了,这篇就写到这里。如果你在实操中遇到具体的封号问题,可以带着日志数据来问我,我帮你定位具体是哪个环节暴露了。