赞片CMSWAF
给赞片CMS 套一层 WAF,能挡掉绝大多数 SQL 注入、后台爆破和 ThinkPHP 历史漏洞的自动化扫描,同时不误伤正常的采集、上传和后台操作。
第一步:确认版本和环境,决定走哪条 WAF 路线
做完这一步,你会知道自己该用云 WAF 还是自建 WAF,以及要不要先升级框架。
登录服务器执行:
php -v
nginx -v
赞片CMS 主流版本基于 ThinkPHP 5.0/5.1,PHP 用 7.0–7.4,Nginx 1.18 以上都能跑。再看框架版本:
grep -r "THINK_VERSION" /www/wwwroot/你的站点/thinkphp/base.php
如果输出 5.0.23、5.1.30 这类老版本号,先把 ThinkPHP 升级到 5.0.24+ / 5.1.41+,再谈加 WAF——WAF 只是第二道防线,框架自身的 RCE 漏洞补丁不能省。
注意:别在 WAF 还没调好之前就把正式域名解析切过去。先用一个测试子域名(比如
waf-test.你的域名.com)验证通了再切主站。
第二步:藏好源站 IP
做完这一步,攻击者就算知道你的域名,也绕不过 WAF 直连真实服务器。
两种做法任选一种:
- 云服务器控制台 → 安全组 → 入方向规则,把 80/443 的授权对象从
0.0.0.0/0改成 WAF 厂商公布的回源 IP 段。阿里云 WAF 3.0 在「接入管理 → 域名接入」页面提供「回源 IP 段」下载,腾讯云 WAF 叫「WAF 回源 IP 列表」。 - 自建 WAF 的话,把源站 Nginx 的监听改成内网:
listen 127.0.0.1:8080;
改完执行 nginx -t && nginx -s reload。
注意:源站 Nginx 里如果有
server_name绑定了域名,WAF 回源时带的 Host 头要对得上,否则会返回 404。
第三步:接入 WAF(三种方案按需选)
做完这一步,流量会先经过 WAF 再到源站。
方案 A:云 WAF。 阿里云 WAF 控制台 → 接入管理 → 域名接入 → 添加域名,协议选 HTTPS,源站填你的服务器 IP 和 80 端口,保存后拿到一条 CNAME 记录,去域名 DNS 解析处把原来的 A 记录改成这条 CNAME。
方案 B:自建雷池 SafeLine(社区版免费)。 需要服务器已装 Docker,执行:
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
装完浏览器访问 https://服务器IP:9443 进管理后台,在「站点 → 添加站点」里把上游服务器填成 http://源站IP:8080。
方案 C:宝塔面板。 宝塔 8.0 的「软件商店 → Nginx 防火墙」,装上后直接在面板里配规则,适合不想额外买服务器的场景。
第四步:给赞片CMS 的业务接口开白名单
做完这一步,WAF 不会把你的正常操作当成攻击。
赞片CMS 有几个接口特别容易被误拦,逐个加白:
- 后台入口:默认是
/admin.php,如果你改过后台文件名,按实际路径填。 - 上传接口:
/index.php/admin/upload/upload.html,需要放行multipart/form-data,并把请求体大小限制从默认 10MB 调到 200MB 以上,否则传大封面图会被 413。 - 采集接口:
/api.php/...或/index.php/api/...,采集参数又长又带特殊符号,建议把「参数异常检测」这类规则关掉。 - 伪静态路径:赞片CMS 用的是
/show/1-2-3.html这种形式,如果开了「URL 黑名单」,把.html结尾的路径放行。
注意:白名单要按「接口路径」加,别图省事按 IP 加。按 IP 加等于给攻击者开后门。
第五步:验证拦截是否生效
做完这一步,你能确认 WAF 真的在工作,而不是白装。
用 curl 模拟一条 ThinkPHP 的命令执行攻击:
curl -I "http://你的域名/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo"
返回 403 或 502 说明拦住了;返回 200 还吐出 phpinfo 页面,说明规则没生效,回第三步检查站点是否真的接入了。
再手动走一遍正常流程:登录一次后台、发一条采集、传一张封面图、点开一个详情页,确认没被误拦。
第六步:看日志,持续调优
做完这一步,WAF 的误报会越来越少。
进 WAF 后台的事件/日志列表,按「拦截」筛选,逐条看:是真实攻击就保持拦截,必要时把源 IP 加进黑名单;是正常业务就加白名单。前三天建议每天看一次。
注意:WAF 日志本身也会占磁盘,自建方案记得在管理后台设置日志保留天数,别把服务器塞满。
小结
- 先升框架补丁,再上 WAF,顺序不能反。
- 源站安全组只放行 WAF 回源 IP,否则 WAF 形同虚设。
- 上传接口、采集接口、后台入口是赞片CMS 三大误拦重灾区,必须单独加白。
- 用带攻击参数的 curl 命令验证拦截,别只看面板上的「已开启」。
- 装完不是结束,前三天看日志调优才算完。
原文链接:https://www.gj0.com/thread-1032.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。