AnQiCMS v3.6.6 升级注意事项:SQL 注入需尽快升级,以及 MCP 后台配置的两个必设项

📅 2026-10-09 👁️ 0

发布于 2026年10月09日

这篇不是更新日志(更新内容见《安企CMS - AnQiCMS v3.6.6 更新日志(合并 v3.6.5)》),只讲三件事:为什么这次建议尽快升级、升级后必须立刻做的两个动作、MCP 这次大改之后后台要怎么配。

一、安全修复:这次不要等,尽快升级

v3.6.5 修复了两个直接影响数据库内容和后台登录安全的高危问题。两处都只能在服务端根治,没有任何配置开关可以绕过,所以唯一的处置方式就是升级。

1. 列表排序参数存在 SQL 注入风险(影响面最大,优先处理)

  • 风险:列表查询的排序参数过去会被直接拼进查询语句,构造特殊的排序值可以读取数据库内容,其中包含管理员账号的密码哈希。
  • 现状:新版本改为严格的字段名白名单——只认数据库里真实存在的列名和升序/降序写法,其余一律丢弃并回落到默认排序。
  • 你要做的:升级到 v3.6.5 及以上;并对照第三节做一次被入侵自查。

2. 站点间跳转登录的凭证可被伪造

  • 风险:多站点之间的「跳转登录」凭证,签名方式依赖密码哈希和一个可由调用方自行生成的随机串,票据永不过期,也不校验账号状态和错误次数。一旦密码哈希泄露,就等于拿到了长期免密登录后台的凭证。
  • 现状:改为由服务端签发的一次性凭证——密钥换成站点自身的 TokenSecret,有效期 120 秒、用过即失效,也无法被签发成长期凭证;同时补上了账号状态校验,以及与密码登录共用的 IP 错误次数锁定。
  • 你要做的:升级之外,必须完成下面的两个动作,否则风险不会消除。

二、升级之后请务必完成这两件事

管理员凭证里没有「吊销」机制。如果站点曾被入侵,攻击者手上已经拿到的会话不会因为升级而失效。所以:

  1. 轮换 TokenSecret:逐个站点更新 websites 表的 token_secret 字段(多站点部署要每个站都换)。换完所有站点的登录态都会失效、需要重新登录,这是正常现象,不是升级出错。
  2. 修改全部管理员密码:不只是你自己的超级管理员,而是所有管理员账号,包括长期不用的、外包或离职同事留下的。建议顺手把不再使用的账号删掉,并检查一下管理员分组的权限有没有被改动。

如果暂时无法升级:漏洞入口在带排序参数的列表类接口上。可以先在 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 就不可用)

这一节是老站点升级后最需要看的。

  1. 接口调用身份:AI 调用网站接口时以哪个管理员身份进行。选「不开放」时 AI 无法调用任何后台接口。较新的配置页首次进入时已默认预选第一位管理员,确认无误即可;若你的界面仍显示「不开放」,请手动选一个。
  2. 接口开放范围:决定 AI 能对网站做哪类操作——
    • 关闭(AI 不能访问数据)
    • 只读(只能查看)
    • 读 + 写(默认,推荐):可查看,也可新增和修改
    • 全部(含删除,谨慎开启)

关键点:这两项都要在页面上选好并保存过才生效。 后台配置界面已将它们设为必填,并给出建议默认值(读 + 写、预选第一位管理员),新站点第一次保存即可用;若你看到的仍是旧版界面、没有预选项,就需要自己明确选一次。而从未保存过 MCP 设置的站点,服务端仍处于「不允许访问任何接口」的保守状态——这是安全兜底,不是升级没生效。所以:升级后请打开这个标签页,确认这两项,点一次保存。

配置保存后即生效,无需重启服务;如果没生效,再重启一次确认。

怎么判断自己漏了哪一项:

现象 原因 处理
工具在列表里能看到,一调用就返回「不在开放范围内」 接口开放范围仍是关闭 改成「只读」或「读 + 写」并保存
所有接口调用都被拒,提示缺少调用身份 接口调用身份是「不开放」 选一个管理员并保存
客户端里连工具都看不到 总开关未启用,或 Token 不对 检查启用状态与 Header 里的 Token
工具看得到、也能调读,但写操作全被拒 开放范围只给到「只读」,或该工具未加入「允许使用的工具」 按需调整为「读 + 写」,危险工具需手动加入
想删数据但总是被拦 未开到「全部」,或该操作属危险工具未授权 确认是否真的需要开放删除,建议改为人工在后台执行

开放到什么程度算合适:日常内容运营用「读 + 写」就够了。涉及会员与订单、数据迁移、备份恢复、版本升级这类,建议不要长期开放,需要时临时开启、用完收回;后台管理员相关操作只提供查看,不通过 AI 修改账号与权限。

七、建议的升级顺序

  1. 先备份:数据库备份 + 站点文件备份(本次升级后备份已覆盖静态文件与更多数据表)。
  2. 再升级:后台的版本检查与升级,或替换程序后重启服务;多站点逐个升级,不要只升主站。
  3. 重建缓存:升级后重建 HTML 静态缓存、按需重建全文检索,然后到前台确认页面正常。
  4. 做安全动作:轮换 TokenSecret、修改全部管理员密码(见第二节),有疑虑的按第三节自查。
  5. 配 MCP:需要给 AI 用的,按第五、六节配置并保存一次。

八、小结

  • 这次升级的核心是安全:SQL 注入和跳转登录凭证伪造都必须在服务端修,只能靠升级;升完记得换 TokenSecret 和全部管理员密码。
  • 这次升级的另一大变化是 MCP:工具按意图重建、审批与更新语义更友好、拒绝理由可读。
  • MCP 能不能用,取决于接口调用身份和接口开放范围这两项是否显式保存过。

配置过程中遇到的现象与报错,欢迎在本分类下发帖,把返回的完整原因文字一起贴出来会更快定位。

相关文章

如何通过安企CMS的内容导入接口批量发布文章和上传图片?

如何通过安企CMS的内容导入接口批量发布文章和上传图片? 可以通过 filename 参数通过 HTTP GET 请求访问 /api/archive/detail 路由来获取详情信息。 依据:/Users/fesion/data/backend/graphwrite/test-data/api/archiveDetail.md#11#3 请求的域名在 /api/archive/detail 路由中使用了 ?filename 参数。 依据

2026-09-16

AnQiCMS API 常见问题解答:Token 认证、文档发布、图片上传与错误码

汇总 AnQiCMS API 调用高频问题:JWT Token 认证与 Update-Token 续期、文档发布必填参数与定时发布、审核状态含义、图片上传为何必须用 multipart/form-data、分页参数写法,以及 0/-1/1001/1002 错误码含义。每条答案均标注官方文档出处。

2026-09-16

cms从3.5.1升级到3.5.2多站点管理站点列表不见了

cms从3.5.1升级到3.5.2多站点管理站点列表不见了

2025-12-10

多语言url问题

我在本地测试这个后台,虽未实际部署,但默认语言设置英文,选择二级目录url,那么切换多语言时,选择英文应该是默认域名访问,但是还是会有/en这个子目录的路径,是我没有设置好

2025-11-25

建议添加一个可以自动生成Open Graph和Twitter Card的功能

建议添加一个可以自动生成Open Graph和Twitter Card的功能

2025-08-14

建议加入对redis缓存数据库的支持,提升网站性能

Redis是一个完全开源免费的高性能(NOSQL)的key-value数据库。它遵守BSD协议,使用ANSI C语言编写,并支持网络和持久化。Redis拥有极高的性能,每秒可以进行11万次的读取操作和8

2025-05-24

分组管理员增加权限设置

建议新增管理员可以设置管理员权限,比如只允许查看和修改,不允许删除总管理员设置好的自定义参数,要不其他管理员可能会误删除已经设置好的自定义参数和自定义内容

2025-05-15

安企盒子标题自动配图设置默认文字大小无效

设置了默认文字大小,但生成的图片字号还是默认的32

2025-05-12