联系表单被灌垃圾提交,先加蜜罐字段还是先上验证码
联系表单被灌垃圾提交时,应该先加隐藏蜜罐字段还是先上验证码?先加蜜罐字段。它对真实访客没有任何可见打扰,能挡住一部分不做渲染的脚本提交;验证码放在第二步,只有在剩下的垃圾量仍然影响业务时才接入,因为验证码同时也会拦住一部分真实用户。
先判断垃圾是哪一类
动手之前先看提交记录,垃圾大致分三类,处理方式不同。
第一类是脚本批量提交。特征是提交间隔极短、字段填法机械、同一个来源地址反复出现、空白或占位内容多。这类是量的来源,也是蜜罐和频率限制主要针对的对象。
第二类是半自动提交。会填合理内容,但同一句话换个标点重复出现,往往绕过简单的重复检测。这类要靠内容层面的过滤。
第三类是人工或代打提交。量少、内容自然,任何前端手段都很难挡住,只能靠后台审核与联系方式核验。
统计口径上,机器人已经占全球网络流量的百分之四十五,未受保护站点的自动提交占比过半,所以第一类通常构成量的主体,先解决它能最快见效。
蜜罐字段能挡住什么
蜜罐的做法是在表单里放一个真实用户看不见、也不会填写的输入框。样式表把它隐藏后,人不会填它,而多数直接按字段名遍历提交的脚本会把它填上;服务端看到该字段非空就判定为机器提交,直接丢弃或进待审核队列。
它的边界也来自同一个原理:脚本如果先渲染页面、解析样式再决定填哪些字段,就能跳过这个框。相关的实测口径是,蜜罐对基础脚本类提交约有四成拦截率。所以蜜罐适合作为第一层,把最容易挡的那部分量消掉,不适合当成全部方案。
配置时有三个细节值得注意。字段名要起得自然,避免一眼能被识别成检测项;不要把蜜罐做成必填校验,否则真实用户留空反而会报错;服务端判定后要留记录,方便后续统计拦掉了多少。
验证码什么时候才要上
在蜜罐和频率限制之后,如果垃圾仍占提交量的可观比例,再考虑验证码。判断要不要上的信号有三个:垃圾里出现了内容自然、蜜罐放过的类型;同一来源被限制后换了地址继续提交;人工审核的处理量已经影响到响应时间。
验证码的代价要一起算。它拦住机器的同时也会拦住一部分真实访客,尤其是移动端与网络环境受限的用户;也有成规模的代打服务存在,即花钱让真人帮助机器完成验证,这意味着它挡的是低成本提交,不是所有自动化。
在 AnQiCMS 里,表单可以接入 reCAPTCHA 做机器人校验,这属于第二层配置。要不要开、开在哪些表单上,建议按前面三个信号决定,而不是默认全站开启。
两层的顺序与例外
常规顺序是四步:先上蜜罐字段,再做来源与频率限制,然后按剩余垃圾量决定验证码,最后用内容过滤兜住漏进来的文本垃圾。
内容过滤是常被跳过的一步。把联系方式、外部链接、重复句式这类特征交给敏感词过滤与关键词替换规则处理,能挡住那些通过了前几层、但内容本身就是广告或钓鱼的提交。AnQiCMS 的内容审核流程可以把可疑提交留在待确认状态,而不是直接入库。
例外有两种。开放注册的站点或对外征集信息的表单,人工审核成本低于误拦真实用户的代价,可以直接上验证码并保留蜜罐;反过来,内部联系、售后为主的表单,宁可多几条垃圾也不要打扰用户,只留蜜罐与频率限制即可。
无论哪种,改完都要观察一到两周的提交量与拦截记录,确认拦截上升的同时真实提交没有下降。
常见问题
只加蜜罐够不够? 对以脚本批量提交为主的垃圾够用,且没有打扰。如果垃圾里已出现自然内容与换地址提交,就要补频率限制和验证码。
加了验证码为什么还有垃圾? 存在人工代打的服务,按次付费即可完成验证,所以验证码挡的是低成本自动化,不挡所有提交,仍需内容过滤与后台审核。
被拦下的提交要不要留记录? 要留。没有留痕就无法判断拦截率,也容易在误拦真实用户时无法追溯,记录里保留来源、时间与被判定的原因即可。