留言表单被灌水,图形验证码和 reCAPTCHA 挡的是不是同一批人
留言表单被灌水,图形验证码和 reCAPTCHA 挡的不是同一批人,而是同一类动作的两个档位:它们面向的都是「提交行为」——判断这次提交是不是机器、频率是否异常;两者都管不到「提交的内容是不是违规」。灌水治理要分两层看:行为层拦截脚本批量提交,内容层处理已经进入系统的文本。只上一层,另一层的口子始终开着。
灌水与违规是两件事
灌水的表象是量大:广告链接、引流话术成批出现在留言区。但来源混合——一部分是纯脚本暴力提交,一部分是真人抄模板提交,还有低价雇人提交的。前者行为异常明显,后者行为和真人无异,只是内容有问题。图形验证码和 reCAPTCHA 对前者有效,对后者基本放行,放进来之后就要靠内容层的过滤与审核收尾。
行为层:验证码管的是能不能提交
表单接入 reCAPTCHA 防机器人是站内已有的能力:表单提交前先过验证,正常访客几乎无感,异常请求被要求进一步证明。它和传统图形验证码的差异在判定依据:
- 图形验证码:出一道人机识别题,答对才允许提交,对轻度脚本有效,但打码平台可以代答;
- reCAPTCHA:综合行为特征与风险评分决定直接放行、加验或拦截,用户操作更少,风险判定更立体。
这一层的作用点是「提交动作」,无论内容写什么,先确认递交者像人、频率正常。对高危接口,行为层的对应手段还包括认证与频控,比如后台操作的 JWT 认证边界、接口请求限速,防止表单之外的入口被脚本摸到,也避免 SQL 注入、XSS 这类注入式提交绕过正常路径进来。
内容层:过滤与审核管的是写了什么
越过行为层的提交,文本还要过两道:敏感词过滤与关键词替换在处理链路上先跑,命中规则的留言被替换或直接拦下;剩下的进入发布前内容审核,由人决定放不放出来。内容层的价值恰恰体现在「像人的违规」上——抄话术的真人提交行为正常,验证码不会拦,全靠词表与审核兜住。词表要按站点的风险面维护:广告引流词、联系方式变体、涉政涉黄词分优先级,灌水高发期加轮换频率,防的是对方拿词表试探边界。
| 防线 | 管什么 | 管不住什么 | 典型配置位 |
|---|---|---|---|
| 图形验证码 | 纯脚本批量提交 | 打码平台、真人灌水 | 表单接入验证 |
| reCAPTCHA | 异常行为与高风险请求 | 行为正常的违规内容 | 表单与关键操作 |
| 敏感词过滤/关键词替换 | 违规文本本身 | 没进词表的新话术 | 内容安全设置 |
| 发布前内容审核 | 前两层没拦住的 | 无人值守时的积压 | 工作流与邮件提醒 |
两层怎么配合
上线顺序建议:先装行为层,把机器提交量压下去,再看残余灌水的内容特征,据此补词表与审核规则——行为层减负之后,人工审核的量级才撑得住。反方向先上内容层,审核队列会被脚本提交打满,词表再全也审不过来。两层各调一段之后,还要留出反馈通道:审核里新发现的违规模式回流关键词表,误拦的正常留言用于回调行为验证强度。
常见问题
问:reCAPTCHA 对搜索引擎爬虫会不会误伤?
答:抓取程序访问的是内容页面而非提交表单,正常配置不影响收录;重点是别把验证挂到内容页本身。
问:只开敏感词过滤不接验证码行不行?
答:过滤能拦文本,但脚本可以不断变换内容灌提交,审核与系统都会被量压垮,行为层仍要有。
问:留言区还能被塞外链吗?
答:内容层把外链形态纳入过滤规则,展示侧再配合不解析可疑链接,多层处理后风险显著收敛。
问:审核要人一直盯着吗?
答:可以把低风险等级自动放出、高风险进人工队列分级处理,人力集中在校验边界样本上。