支付凭据保护与升级说明

适用版本:2026-11-04 安全修复之后的 KnowSphere。

存储与备份

内置支付宝的商户私钥、接口加密密钥,以及内置微信支付的商户私钥、API V3 密钥,使用 AES-256-GCM 加密保存。普通配置 API 不返回密钥原文或密文,只返回表示已配置的占位值;支付网关调用在服务端读取解密后的配置。

加密密钥文件位于 Halo 工作目录的 .knowsphere/payment-credentials.key,默认对应 ~/.halo2/.knowsphere/payment-credentials.key。Linux/macOS 创建时仅文件所有者可读写。自定义 halo.work-dir 时以实际工作目录为准。

迁移站点时必须同时备份数据库和该密钥文件,分别妥善保管。不要将密钥文件放入公开仓库、截图或反馈附件。数据库包含密文,单独的数据库备份不足以恢复支付配置。缺失或损坏密钥文件时会明确报错,不会悄悄生成新密钥覆盖旧凭据。

插件启用时自动将旧版明文配置迁移为密文;保存配置时再次执行保护。历史数据库备份中的旧明文不会自动消失,管理员应按原有备份策略限制访问,并在必要时到商户平台轮换密钥。

支付表单中保留占位值可保存原密钥,输入新值可替换;后端也兼容空字段保留已有密钥。仅修改其他配置无需重新录入支付密钥。不要把占位值当作支付平台实际密钥复制使用。

评论解锁与公开内容

匿名评论解锁绑定 Halo 成功创建的具体评论及提交浏览器的 HttpOnly 凭证,不再允许仅输入已评论者邮箱冒领权限。待审核评论只有审核通过后才生效,评论删除或隐藏后撤销该资格。旧版邮箱凭证失效后,需要重新提交评论,或登录后按站点规则解锁。匿名凭证不跨浏览器转移。

公开预览、公开专栏接口与主题 Finder 过滤草稿、私密、内部可见、已删除和未到发布时间的文章;专栏需要启用且为已发布状态。章节元数据也遵守该规则。

币种、通知与发行包

当前支付链路仅支持人民币;遗留 USD 设置读取时归一为 CNY,不进行汇率换算。原有订单金额不变。

此前没有实现的订单通知和会员到期提醒设置已移除,不再承诺发送;会员权益本身的到期判定保持有效。

发行 JAR 的 META-INF/third-party/ 保留完整第三方许可、版权声明、各依赖 POM 和依赖清单。新增未审核依赖会使许可整理任务失败,发布者需要核对后再更新映射。