企业官网上线后,有时一天能收到几十封“SEO推广”“外贸合作”甚至乱码内容。最直接的反应是加一个很难的验证码,结果机器人少了,真实客户也不愿意填。
表单防垃圾的目标不是把所有异常挡在门外,而是在不明显增加正常用户负担的前提下,提高自动化攻击成本。
01 先确认垃圾提交从哪里来
查看提交时间、字段内容、IP、User-Agent、来源页面和请求频率,判断是简单脚本、人工群发、接口直调还是已绕过前端验证。
如果只在前端隐藏接口或做校验,机器人可以直接请求后端。所有关键判断都要在服务端再次执行。

02 从低摩擦措施开始叠加
蜜罐字段、最短填写时间、CSRF保护、字段长度限制和服务端格式校验,对正常用户几乎无感,却能过滤大量低级脚本。
不要把邮箱、电话“格式正确”当作内容真实。还要检查重复文本、链接数量、异常字符和连续高频提交。
常见反垃圾措施怎么选
| 措施 | 适合解决 | 注意事项 |
|---|---|---|
| 蜜罐字段 | 自动填充所有字段的机器人 | 字段应对用户不可见且服务端验证 |
| 速率限制 | 同一来源高频请求 | 按IP、会话、账号等组合,避免共享网络误伤 |
| 行为验证码 | 可疑请求二次验证 | 只在风险升高时触发,减少摩擦 |
| 内容规则 | 重复、链接、关键词垃圾 | 需要持续调整,防止误判正常咨询 |
| 邮件/短信确认 | 高价值预约或注册 | 增加成本和流失,不适合所有表单 |
| WAF或风控服务 | 规模化攻击和已知恶意来源 | 需监控规则、隐私和第三方成本 |

03 限流要按业务价值设置
普通联系表单可以限制短时间重复提交;登录、验证码和密码重置需要更严格的多维度限制。
只按IP封禁可能误伤公司网络和移动运营商用户。可结合Cookie、设备特征、会话和行为,但不要收集超出必要范围的数据。
04 验证码应作为升级措施,不是第一道门
当风险评分异常时再展示验证,比所有用户每次都做拼图更合理。验证码无法替代服务端校验,也可能被人工打码或自动化绕过。
移动端、键盘用户和辅助技术使用者也要能完成验证,避免把无障碍问题当作安全成本。

05 拦截后要有日志和申诉路径
记录规则命中、时间、请求标识和处理结果,便于判断哪条规则过严。不要在日志中长期存储不必要的敏感表单内容。
高价值线索若被拦截,应有备用联系电话、邮箱或重试提示,而不是只显示“提交失败”。
06 定期清理攻击入口和依赖
废弃接口、旧表单、测试页面和未更新插件经常成为入口。删除不用的端点,更新框架与依赖,限制管理后台权限。
上线后监测垃圾率、误伤率、提交完成率和规则命中分布。只看“垃圾少了”可能掩盖真实线索也一起下降。
常见问题
加reCAPTCHA就能解决所有垃圾提交吗?
不能。验证码只是一层,应配合服务端校验、限流和日志。
隐藏表单接口有用吗?
不能作为安全措施。接口地址可能被抓取或从网络请求中发现,后端必须独立验证。
为什么机器人能绕过前端必填校验?
因为它可以直接调用提交接口,不执行页面JavaScript。
封禁IP是否最有效?
对固定来源有效,但容易被代理绕过,也可能误伤共享网络,适合与其他信号组合。
如何判断验证码是否影响转化?
比较启用前后的表单开始率、完成率、错误率、有效线索和移动端表现。