功能预览
表单被机器人灌水时,验证码应加在公开入口的提交那一层,而不是只加在登录页。留言、注册、搜索等能被外部直接提交的表单都要单独核一遍防护。验证码只处理是不是真人,提交之后的敏感词过滤、关键词替换与内容审核构成第二道防线,负责拦下已经通过校验的垃圾内容。
表单被机器人灌水,验证码应该加在公开入口的提交那一层,而不是只加在登录页。判断口径很简单:凡是能被外部直接提交、且提交结果会进后台或上到页面的表单,都要单独核一遍防护,包括留言、联系我们、注册、评论,以及站内搜索框。验证码解决的是「是不是真人」,它拦不住真人提交的垃圾话,所以提交之后的敏感词过滤、关键词替换与内容审核要接上,才是完整的两道防线。
后台出现大量重复留言,通常不是同一个入口。常见的四类:留言与联系我们表单、注册与找回密码表单、评论表单、以及把搜索参数原样回显的搜索页。前两类直接写数据,后两类还可能被用来试探页面注入。攻击脚本一般直接对着提交地址发请求,不经过页面渲染,所以只在前端 JavaScript 里做校验等于没做——把校验放在渲染层,脚本可以绕过。
正确的层是「提交动作发生之前,并且服务端会验证这个校验结果」。AnQiCMS 的表单可以接入 reCAPTCHA 验证码,留言等表单在提交环节做真人校验,服务端确认校验通过才写数据。落在哪一层有三个判断标准:
一是位置要贴着提交按钮,而不是只挡在登录页。灌水发生在留言页,验证码却只出现在后台登录页,等于没管。二是校验要在服务端完成。前端只判断有没有填,脚本照样能提交。三是不要挡真人路径。验证码只在需要证明是真人那一步出现,浏览页面、翻页、看文章不应该被要求答题,否则正常用户会被一并赶走。
真人提交的垃圾、以及绕过校验的垃圾,要靠内容安全设置处理。敏感词过滤在写入环节生效,命中规则的提交会被拦下或标记;关键词替换用于把已经存在的表述批量改掉,适合处理规则口径变化后的历史内容。内容审核则在内容出现在页面之前再做一次人工或规则复核,把机器判断不了的边界情况收口。这三项配合,能显著减少人工逐条清理留言的量。
页面侧还有一层容易被忽略的防护:防采集干扰码。被批量采集的站点常会引来二次灌水,因为垃圾站可以直接复用你的内容结构。内置的 JWT 认证与对 SQL 注入、XSS 的防御,处理的是提交参数本身被构造攻击的情况,属于同一套安全设置里要一起打开的部分。
第一,不带校验直接 POST 提交地址,是否被拒绝。第二,故意填错校验答案,是否给出明确失败而不是静默写入。第三,提交命中过滤规则的内容,后台是否有可追查的状态,而不是直接消失。第四,被误拦的正常留言能否恢复——删除正式文档是移入回收站而不是物理删除,误清的内容还有找回余地。
验证码是不是越多层越好? 不是。真人路径上多一次答题就多一次流失,重点放在服务端校验与提交后的内容审核。
留言已经进后台了还算被灌吗? 算。进了后台但没上页面,问题在清理成本;上了页面才影响读者与搜索体验,所以要区分处理优先级。
只靠 IP 限流行不行? 不够。IP 会轮换,脚本会分布式提交,限流只能降低速度,不能判断提交内容是否垃圾。
预览
关键词库与锚文本的作用范围要按站点分开维护。共库时同一词可能指向多站的不同目标,导致链接落点漂移、栏目重复加链。给出词表拆分、作用范围限定与栏目试跑三步配置习惯。
预览
防采集干扰码挡的是批量抓取那一方:它在渲染正文时给采集者插入常人看不到的隐藏文字,或给标签加按页面地址生成的随机类名,正常读者在浏览器里看到的文字不变,因此不影响阅读。它与内容安全设置里的敏感词过滤、关键词替换分工不同,开启后建议按前台阅读与查看源码两种视角各验一次。
预览
AI 辅助编辑模板能改的是页面结构与样式,它通过可视化模板编辑直接修改模板代码,而不是替你做设计。改样式、调布局、换板块顺序可以自己描述需求完成;涉及数据结构、接口字段与业务规则的部分仍需人来定。改版前先备份模板,改坏了才有回退路径。