机器批量抓取和人工灌水一起来时,敏感词过滤和干扰码各拦哪一段
机器批量抓取和人工灌水一起来时,先把对手拆开再谈防线:抓取方要的是你的内容,灌入方要的是你的发布位,还有第三类构造请求的人要的是你的数据。敏感词过滤管的是文本内容,防采集干扰码管的是整页被批量搬走,SQL 注入与 XSS 这类靠认证和转义收口——三层各拦一段,选错层就会出现在「明明装了防护、却没挡住」的现象。
三种现象其实是三类对手
同一种「异常流量变大」的表象下,行为目标完全不同:
- 批量抓取:程序按栏目翻页拉走正文,可能用于抄袭站填充,也可能只是采集行为,入口是「读」;
- 人工/半自动灌水:对方走的是你开放的表单与评论,要的是留言曝光或外链,入口是「写」;
- 注入式攻击:把构造的内容塞进参数、字段或路径里,试探程序的处理漏洞,入口是「解析」。
处置前先判断对手属于哪一类,防线才有落点。
敏感词过滤收的是内容
内容安全设置里的敏感词过滤与关键词替换,处理的是「文本本身有没有风险」。它站在发布链路上,两头都管:采集或导入的外部内容入库前过一遍过滤,违规表述被拦下或替换;用户提交的留言评论同样走这套规则,再进发布前内容审核。灌水的文本往往带固定话术,把引流词、联系方式变体沉淀进词表后,过滤层能直接压掉大批重复提交——它不区分提交者是不是人,只看写了什么。
干扰码收的是搬运
对抓取方,验证码拦不住「读」,敏感词也不影响它把干净内容搬走,这一段属于防采集干扰码。内置的干扰码机制在页面输出中混入对读者无感、对整页采集有害的内容:人眼看页面正常,机器直接搬运得到的则是错序、夹带的文本。它的意义不是「绝对搬不走」,而是把批量搬运的产出质量打下去——采集方要靠整段原文吃饭,拿到的是脏数据,批量抄袭的成本就上不来了。配合抓取频控与站点地图的收录边界管理,读这一侧的面可以再收窄一些。
注入与脚本收在哪一层
SQL 注入与 XSS 不在内容层,也不在搬运层,而在程序处理层:对方提交的不是「话术」而是「代码」,靠敏感词去匹配永远慢一步。这一段要靠机制而不是特征:查询走参数化、输出做转义、后台接口有认证边界(如 JWT 会话校验),把构造的 payload 变成无意义的字符。这也是 AnQiCMS 把 JWT 认证、内容敏感词过滤、防采集干扰码并列写进安全能力的原因——三者对应的正是写、读、解析三条攻击路径。
| 对手类型 | 想要的东西 | 对应防线 | 常见误区 |
|---|---|---|---|
| 批量抓取脚本 | 整页原文 | 防采集干扰码、频控 | 以为验证码能挡读 |
| 灌水提交者 | 发布位与曝光 | 敏感词过滤、关键词替换、内容审核 | 只验证行为不管文本 |
| 注入构造者 | 数据与权限 | 认证、参数化与输出转义 | 拿词表堵代码 |
常见问题
问:干扰码会不会影响搜索引擎收录?
答:正常输出对人可读、对搜索引擎按页面主体解析,收录通道读取的是页面内容结构,不依赖采集式整段搬运。
问:三层都开会不会互相干扰?
答:作用点在链路不同段(提交、输出、解析),按层配置不会冲突,反而缺一层就是缺口。
问:小站只有评论风险,先上哪层?
答:先上敏感词过滤与审核,再给表单接行为验证;干扰码在内容被盯上抄袭时再开。
问:词表要多久更新一次?
答:灌水高发期按周复盘新增话术,平稳期按月清理失效词,重点是让审核里的新样本回流进词表。