AnQiCMS v3.6.6 升级注意事项:SQL 注入需尽快升级,以及 MCP 后台配置的两个必设项
发布于 2026年10月09日
这篇不是更新日志(更新内容见《安企CMS - AnQiCMS v3.6.6 更新日志(合并 v3.6.5)》),只讲三件事:为什么这次建议尽快升级、升级后必须立刻做的两个动作、MCP 这次大改之后后台要怎么配。
一、安全修复:这次不要等,尽快升级
v3.6.5 修复了两个直接影响数据库内容和后台登录安全的高危问题。两处都只能在服务端根治,没有任何配置开关可以绕过,所以唯一的处置方式就是升级。
1. 列表排序参数存在 SQL 注入风险(影响面最大,优先处理)
- 风险:列表查询的排序参数过去会被直接拼进查询语句,构造特殊的排序值可以读取数据库内容,其中包含管理员账号的密码哈希。
- 现状:新版本改为严格的字段名白名单——只认数据库里真实存在的列名和升序/降序写法,其余一律丢弃并回落到默认排序。
- 你要做的:升级到 v3.6.5 及以上;并对照第三节做一次被入侵自查。
2. 站点间跳转登录的凭证可被伪造
- 风险:多站点之间的「跳转登录」凭证,签名方式依赖密码哈希和一个可由调用方自行生成的随机串,票据永不过期,也不校验账号状态和错误次数。一旦密码哈希泄露,就等于拿到了长期免密登录后台的凭证。
- 现状:改为由服务端签发的一次性凭证——密钥换成站点自身的 TokenSecret,有效期 120 秒、用过即失效,也无法被签发成长期凭证;同时补上了账号状态校验,以及与密码登录共用的 IP 错误次数锁定。
- 你要做的:升级之外,必须完成下面的两个动作,否则风险不会消除。
二、升级之后请务必完成这两件事
管理员凭证里没有「吊销」机制。如果站点曾被入侵,攻击者手上已经拿到的会话不会因为升级而失效。所以:
- 轮换 TokenSecret:逐个站点更新
websites表的token_secret字段(多站点部署要每个站都换)。换完所有站点的登录态都会失效、需要重新登录,这是正常现象,不是升级出错。 - 修改全部管理员密码:不只是你自己的超级管理员,而是所有管理员账号,包括长期不用的、外包或离职同事留下的。建议顺手把不再使用的账号删掉,并检查一下管理员分组的权限有没有被改动。
如果暂时无法升级:漏洞入口在带排序参数的列表类接口上。可以先在 WAF 或 Nginx 层对 order、sort 这类参数做规则拦截(只放行常见排序写法),并在防火墙层收紧后台与接口的访问来源。这只是临时手段,不能替代升级。
三、被入侵自查清单
改密码之前先确认有没有被用过,否则改了也可能留后门:
- 查后台的管理员登录日志与操作日志:有没有异常 IP、异常时段、非本人操作的写入记录(新版本会如实记录登录时间)。
- 查管理员列表:有没有多出来的陌生账号、管理员分组权限有没有被放宽。
- 查内容与模板:有没有批量新增的文档、隐藏的单页或跳转、被改过的模板文件(重点看有没有**入外链或脚本)。
- 查数据库与定时任务:有没有陌生表、非预期的计划任务。
- 确认被入侵时,按「清除后门 → 换 TokenSecret → 改全部管理员密码 → 重建管理员账号」的顺序处理;不确定清理干净时,从已知干净的备份还原更稳妥。
另外两处凭证泄露问题(站点详情接口回显数据库密码、API 暴露 SMTP 授权码)也在此版本修复。若你的 SMTP 授权码曾被接口读到过,建议一并在邮箱服务商侧重新生成授权码。
四、MCP 这次是大改
如果你在用 Claude Desktop、Cursor、Cherry Studio 这类第三方 AI 客户端接管站点,这次升级后变化比较大,先了解再配置:
- 工具按「意图」重新组织:不再是一堆零散的能力接口,而是按业务意图收敛成目录(当前共 49 项,如文档全生命周期、管理分类/标签/单页/模型、robots/sitemap/推送、备份与恢复等)。站点可以自选开放哪些,本站当前开放 28 项。
- 一次审批代替逐条打断:同一回合里的多个写操作合并成一次确认,读操作不再打扰你;但删除、改密码、数据库迁移这类敏感路径仍然逐次确认。
- 改内容不用再传全量:更新文档、分类等只覆盖你传入的字段,未传的正文、封面、分类、标签自动沿用原值,不会被清空。批量改标题安全多了。
- 调用被拒绝能看到原因了:以前只报一句「调用未完成」,现在会返回中文原因和下一步该怎么做,排查配置问题不用再猜。
- 新增能力:邮件订阅与群发(群发是异步任务,会返回任务号供轮询进度)、留言列表查询、附件 base64 图片直传、敏感词按关键词替换、模板 attachment 附件标签、
json过滤器的 encode/decode、内置文件搜索的**递归通配。
要注意的兼容点:历史工具名会自动映射到对应意图,但如果你的客户端里手写保存过旧的调用配置或自定义技能,升级后建议重新拉一次工具列表核对;技能文本里请统一使用意图名。
五、MCP 后台配置入口与各项含义
入口:后台 → 设置 → AI统一配置 → 「MCP 开放接口」标签页。
| 配置项 | 作用 | 建议 |
|---|---|---|
| 启用 MCP 开放接口 | 总开关,关闭时第三方 AI 完全无法接入 | 需要时才开 |
| 鉴权 Token | 第三方调用时需在 Header 携带 Authorization: Bearer '<token>' |
点「生成随机 Token」,生成后自己留存;泄露就重新生成 |
| 速率限制(次/分钟) | 防止 AI 过度调用把服务打满,0 为不限制 | 填一个非零值,不要留 0 |
| 允许使用的工具 | 决定工具列表里能看到哪些 | 留空=全部常用工具;填 *=含危险工具的全部;也可只指定几个(英文逗号分隔),或填整类如 content、seo |
危险工具(备份、升级、删除等)默认不开放,必须手动加进上面这一栏才可用。页面上列出了本站点可用工具清单,点工具名即可加入,悬停能看说明和风险等级。配好后用「一键复制配置」把客户端配置交给第三方工具即可。
六、两个必须显式设置的地方(最容易漏,漏了整个 MCP 就不可用)
这一节是老站点升级后最需要看的。
- 接口调用身份:AI 调用网站接口时以哪个管理员身份进行。选「不开放」时 AI 无法调用任何后台接口。较新的配置页首次进入时已默认预选第一位管理员,确认无误即可;若你的界面仍显示「不开放」,请手动选一个。
- 接口开放范围:决定 AI 能对网站做哪类操作——
- 关闭(AI 不能访问数据)
- 只读(只能查看)
- 读 + 写(默认,推荐):可查看,也可新增和修改
- 全部(含删除,谨慎开启)
关键点:这两项都要在页面上选好并保存过才生效。 后台配置界面已将它们设为必填,并给出建议默认值(读 + 写、预选第一位管理员),新站点第一次保存即可用;若你看到的仍是旧版界面、没有预选项,就需要自己明确选一次。而从未保存过 MCP 设置的站点,服务端仍处于「不允许访问任何接口」的保守状态——这是安全兜底,不是升级没生效。所以:升级后请打开这个标签页,确认这两项,点一次保存。
配置保存后即生效,无需重启服务;如果没生效,再重启一次确认。
怎么判断自己漏了哪一项:
| 现象 | 原因 | 处理 |
|---|---|---|
| 工具在列表里能看到,一调用就返回「不在开放范围内」 | 接口开放范围仍是关闭 | 改成「只读」或「读 + 写」并保存 |
| 所有接口调用都被拒,提示缺少调用身份 | 接口调用身份是「不开放」 | 选一个管理员并保存 |
| 客户端里连工具都看不到 | 总开关未启用,或 Token 不对 | 检查启用状态与 Header 里的 Token |
| 工具看得到、也能调读,但写操作全被拒 | 开放范围只给到「只读」,或该工具未加入「允许使用的工具」 | 按需调整为「读 + 写」,危险工具需手动加入 |
| 想删数据但总是被拦 | 未开到「全部」,或该操作属危险工具未授权 | 确认是否真的需要开放删除,建议改为人工在后台执行 |
开放到什么程度算合适:日常内容运营用「读 + 写」就够了。涉及会员与订单、数据迁移、备份恢复、版本升级这类,建议不要长期开放,需要时临时开启、用完收回;后台管理员相关操作只提供查看,不通过 AI 修改账号与权限。
七、建议的升级顺序
- 先备份:数据库备份 + 站点文件备份(本次升级后备份已覆盖静态文件与更多数据表)。
- 再升级:后台的版本检查与升级,或替换程序后重启服务;多站点逐个升级,不要只升主站。
- 重建缓存:升级后重建 HTML 静态缓存、按需重建全文检索,然后到前台确认页面正常。
- 做安全动作:轮换 TokenSecret、修改全部管理员密码(见第二节),有疑虑的按第三节自查。
- 配 MCP:需要给 AI 用的,按第五、六节配置并保存一次。
八、小结
- 这次升级的核心是安全:SQL 注入和跳转登录凭证伪造都必须在服务端修,只能靠升级;升完记得换 TokenSecret 和全部管理员密码。
- 这次升级的另一大变化是 MCP:工具按意图重建、审批与更新语义更友好、拒绝理由可读。
- MCP 能不能用,取决于接口调用身份和接口开放范围这两项是否显式保存过。
配置过程中遇到的现象与报错,欢迎在本分类下发帖,把返回的完整原因文字一起贴出来会更快定位。