功能预览

功能介绍

联系表单的垃圾提交防不住,验证码之外还要检查哪几项

当天核到的公开口径称,未加防护的表单提交中超过六成是垃圾或机器行为,而验证码本身已可被绕过。本文给出验证码之外的四层检查:隐藏字段与频控、提交目标是否可被枚举、内容层的敏感词过滤与审核,以及留言与评论的同源防护。

reCAPTCHA 反垃圾 表单安全

功能介绍

联系表单的垃圾提交防不住,验证码之外还要检查哪几项?先看量级:一份当天的公开口径写道,In 2026, over 60% of unprotected form submissions are spam or bots——未加防护的表单提交里超过六成是垃圾或机器行为。这个比例意味着,只做一层防护基本等于没做,验证码只是把最容易的一批请求挡掉。

验证码挡得住什么、挡不住什么

AnQiCMS 支持在表单接入 reCAPTCHA 验证码防机器人。它针对的是”自动化脚本批量提交”这一类,效果确实直接。局限也明确:一是可被绕过,人工打码平台与自动化绕过方案长期存在;二是它带来体验损耗,每多一步验证就多一层流失。

因此验证码应该被定位成”减少量的手段”,而不是”阻止进来的手段”。真正把垃圾提交的影响消掉,靠的是提交之后的处理链路。

第一层要检查:隐藏字段与频率

蜜罐字段(一个对真人不可见、脚本却会填的输入框)与提交频控是成本最低的一层。判断标准是:同一来源在短时间内反复提交同一表单,是否会被拒绝并记录。很多站点的垃圾提交之所以畅通,是因为接口只校验”字段是否合法”,从不看”这个来源是不是在批量干活”。

这一层还有一个常被忽略的点:表单地址是否可被直接枚举。若提交端点没有来源校验,脚本可以绕过页面直接调用接口,此时页面上的验证码形同虚设。

第二层要检查:内容层有没有兜底

垃圾提交的最终落点是数据库与页面输出。就算前面几层被穿透,只要写入与展示环节有过滤,影响也能被压住。

AnQiCMS 的内容安全设置提供敏感词过滤与关键词替换、内容审核,提交进来的文本先过规则再落库,命中项进入待审而不是直接发布。这一层的价值在于它不依赖”识别机器人”,只判断”这段内容能不能出现”,对改写后绕过的垃圾同样有效。认证与注入面由另一层负责:内置 JWT 认证、内容敏感词过滤与防采集干扰码,用于防御 SQL 注入与 XSS 攻击。

第三层要检查:留言与评论是不是同一个入口

表单垃圾很少只打在联系表单上。留言、评论、注册昵称是同源问题,用同一套内容规则收口比各表单各配一套更稳。AnQiCMS 的 GEO 与 SEO 相关后台模块共 14 个,其中就包含评论反垃圾一项,llms.txt 与站点地图等模块也在同一份清单里,留言列表也已被纳入统一的后台管理,处理垃圾时可以一次看到所有来源。

判断自己是否有缺口的办法很直接:把站内所有能写入文本的入口列一遍——联系表单、留言、评论、搜索框、用户名——然后逐个问”这条链路上有没有内容审核”。列表里出现空白项,就是垃圾会来的地方。

别把防垃圾做成反人性

过度验证会把真实客户一起挡掉。一个常见误操作是把验证码等级调到最高、又给表单加了七个必填项,垃圾是少了,线索也归零。合理的做法是让机器承担第一道筛选(频控与规则),把人的摩擦控制在一两步以内,模糊的内容再交给审核队列,而不是直接拒绝。

常见问题

问:只加蜜罐字段够不够? 答:不够。蜜罐对不解析页面的直接接口调用无效,需要与频控、内容过滤叠加使用。

问:垃圾提交进了数据库怎么办? 答:先确认它没有被输出到任何页面,再按来源批量清理,并把命中的规则补进敏感词过滤与关键词替换,避免同类内容再次入库。

问:表单要不要一律加验证码? 答:不必。内部流程类表单可以用权限与频控替代,公开的留资表单再上验证码,把体验损耗留给真正对外敞开的入口。