GJ 站长论坛・社区规则,请知晓

船说 CMS 评论灌水怎么拦截

liulian
liulian 初级会员超兽战士
发布于 2026-10-08 21:15 ·7 浏览 ·0 回复

学完这篇,你能把船说 CMS 的评论灌水从「天天删」变成「基本不用管」——前台堵、后台滤、服务器兜底三层都配上。

灌水评论一般分三种:机器批量发的带链接广告、手动刷的关键词推广、以及同一个人换着号刷屏。三种要用不同的手段对付,所以下面按顺序一步步来,不要跳步。

第一步:先把评论审核打开,拿到喘息时间

这一步的目标是立刻止血:所有新评论先进入待审状态,不再直接出现在前台。登录后台(船说 CMS 默认入口是 /admin.php 或 /admin/),进入「系统」→「功能设置」→「评论设置」(部分版本在「内容管理」→「评论管理」→「评论参数」里)。

把这几项改掉:

  • 「评论是否需要审核」改成 开启
  • 「评论间隔时间」填 60 秒(同一用户两次评论的最小间隔)
  • 「同一 IP 每日评论上限」填 20
  • 「评论是否开启验证码」改成 开启

保存后前台评论提交会立刻受限制。

注意:不同版本这几项的菜单位置和名称略有差异,以你后台实际显示的文字为准。如果找不到「评论设置」,直接在后台顶部的搜索框里搜「评论」。

第二步:配置敏感词和链接过滤

审核只是拖时间,真正省事的是让垃圾评论根本进不来。还是在「评论设置」页面,找到「敏感词过滤」或「评论关键词过滤」。

在文本框里按 一行一个 的格式填入:

http://
https://
加微信
加Q
代发
推广

保存后,命中这些词的评论会被直接拦截或转入待审。

其中 http:// 和 https:// 是最关键的两条——正常用户评论极少带链接,而广告评论几乎必带。如果你的站点允许用户在评论里发链接,可以改成「含链接的评论一律进待审」而不是直接拒绝。

第三步:找提交接口,准备做服务器限流

前两步是 CMS 层面的。如果对方是用脚本直接 POST 提交,绕过了前台页面,就得在 Web 服务器上拦。

先在浏览器打开你的文章页,按 F12 → 切到 Network(网络) 标签 → 在评论区随便发一条测试评论 → 看列表里新出现的那条请求,它的地址就是评论提交接口,通常是 /index.php/Home/Comment/add 或 /plus/comment.php 这类形式。把这个地址记下来。

第四步:用 Nginx 限制评论提交频率

打开 Nginx 配置文件(一般在 /etc/nginx/nginx.conf 或 /www/server/panel/vhost/nginx/你的域名.conf)。

在 http { } 块里加一行:

limit_req_zone $binary_remote_addr zone=cmt:10m rate=6r/m;

意思是:按访客 IP 记录,每分钟最多 6 次。

在网站的 server { } 块里,把你第三步记下的接口地址加进去:

location = /index.php/Home/Comment/add {
    limit_req zone=cmt burst=3 nodelay;
    limit_req_status 429;
    include fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}

改完执行 nginx -t 检查语法,通过后 nginx -s reload 生效。

注意:fastcgi_pass 的地址要跟你站点原有的 PHP 配置保持一致,不要照抄。直接复制原来站点里的 location ~ \.php 段落改最稳妥。如果你的评论接口是 /plus/comment.php 这种真实文件路径,location 就写成 = /plus/comment.php。

第五步:清理已有的灌水评论

后台「评论管理」列表里,通常有「按 IP 搜索」或「批量删除」功能。先按 IP 排序,找出评论数异常多的那几个 IP,再批量勾选删除。

如果评论量太大,后台删到卡死,可以直接在数据库执行。用 phpMyAdmin 或命令行进数据库(表前缀看你安装时填的,常见是 cs_):

-- 先查出发帖最多的 IP
SELECT ip, COUNT(*) AS c FROM cs_comment
GROUP BY ip HAVING c > 20 ORDER BY c DESC;

-- 确认无误后,按 IP 批量删
DELETE FROM cs_comment WHERE ip = '要删的IP';

注意:执行 DELETE 前先 SELECT * 看一眼内容确认是垃圾数据,并提前备份数据库。删错了没有回收站。

第六步:把后台入口和密码加固

灌水脚本很多是先爆破后台再批量灌的。做两件事:一是把 /admin.php 改成别的名字(直接重命名文件即可,改完记得自己存好新地址);二是把管理员密码换成 12 位以上的强密码。这一步不直接拦评论,但能砍掉一大半来源。

小结

  • 先开评论审核 + 间隔限制,一分钟止血
  • 敏感词里 http://、https:// 必填,链接是广告评论的最大特征
  • 脚本灌水靠 Nginx limit_req 限流,用 F12 找到真实提交接口
  • 存量垃圾评论用 SQL 按 IP 批量清,操作前先备份
  • 后台入口改名 + 强密码,减少被爆破后灌水的可能
版权声明:本文来自 GJ站长论坛《船说 CMS 评论灌水怎么拦截》
原文链接:https://www.gj0.com/thread-1198.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~