官网上线没多久,联系表单一天收到两百条乱码留言,真实询盘埋在里面根本翻不出来。这是几乎每个有表单的网站都会遇到的事。垃圾提交不只是烦,它还会拖慢服务器、污染线索数据,严重时让业务员彻底放弃看后台。
## 一、垃圾提交是怎么来的
绝大多数不是人工干的,是自动化脚本扫全网表单批量灌。它们的目的通常有三种:投放垃圾外链做黑帽推广、试探系统有没有注入漏洞、或者纯粹是撞库和采集邮箱的副产品。
理解这一点很关键——既然对手是脚本,那就用脚本不擅长的方式挡它。
## 二、成本最低效果最好的两招
蜜罐字段。在表单里放一个人眼看不见、但脚本能读到的输入框。真实用户永远不会填它,脚本却会自动填满所有字段。后端一看这个字段有值,直接丢弃。这招不打扰任何真实用户,拦截率却能到八九成。
提交耗时校验。页面渲染时埋一个时间戳,提交时算差值。人填完一个表单至少要几秒,脚本是毫秒级提交。小于三秒的一律判定为机器。
这两招组合起来,不需要让用户点任何验证码,就能挡掉绝大部分自动化灌水。我们给客户站做反垃圾,默认就是这个方案。
## 三、进一步的防线
频率限制。同一来源一分钟内只允许提交一次,一天不超过若干次。
内容特征过滤。留言里带多个链接、通篇是外文推广话术、出现博彩医药类关键词的,自动打标进待审队列,不直接进主线索池。
字段合理性校验。手机号格式、邮箱域名是否存在、姓名字段是否是乱码,服务端都要重新校验一遍——前端校验只能防手滑,防不了脚本。
## 四、别急着上验证码
很多人第一反应是加验证码。但验证码是有代价的:每加一道,真实询盘就掉一批,移动端尤其明显。而且现在的自动化打码成本极低,挡不住有针对性的攻击。
正确顺序是:先上蜜罐和耗时校验,观察一周;还挡不住再加频率限制;真遇到持续性定向灌水,才考虑对可疑请求单独弹验证。
## 五、后端永远要做最后一道校验
所有前端防护都可以被绕过——脚本可以直接对提交接口发请求,压根不加载你的页面。所以入库前必须在服务端完成过滤、转义和长度限制,同时防住存储型脚本注入。
表单反垃圾、询盘分流、线索来源标记这些都可以在现有站点上加装,需要就来聊。
—
担心网站被黑、被挂马、被打挂?安全防御、SSL 证书托管、网站加速、插件定制我们都能接。微信 jeans2045、QQ 361611074,先说说你的情况,我们给判断和方案。