Skip to content
🔧 进阶手册第 7 / 7 节

安全加固(三):提示注入防御与安全审计 ​

一句话目标:防住提示注入——把进入 Gateway 的不可信输入管起来、把明文凭据清干净,并用 openclaw secrets audit --check 通过一次安全审计。

前置:先完成《安全加固(一):访问控制与身份》;工具权限与沙箱见《安全加固(二)》。

准备 ​

  • OpenClaw 2.0(v2026.8.1)及以上,本教程以仓库版本 2026.10.9 为基准。
  • 一份能正常启动的 Gateway 配置:渠道已接入,至少配好一个模型 provider。
  • 终端里能运行 openclaw CLI。

跟我做 ​

第 1 步:盘点注入面 ​

操作:列出所有进入 Gateway 上下文的输入源——渠道消息、skills、MCP 工具返回的内容、浏览器抓取的网页。对每一项标注「可信 / 不可信」。记住一条原则:Gateway 进程是唯一信任边界,模型与 agent harness 都是可换插件,插件返回的内容一律按不可信输入处理。

预期结果:一张「输入源 → 信任级别 → 可触发的工具」清单。凡是不可信源能触发的工具,回到上一课收紧权限。

第 2 步:迁移凭据,消除明文 ​

操作:明文凭据可能藏在四处:openclaw.json、.env、退役的 auth-profile JSON 归档、生成的 agents/*/agent/models.json。逐项改写为 SecretRef——支持 env、file、exec、store 四类 provider 块,exec 可直接接 1Password、Bitwarden、Vault、pass、sops。团队共享密钥放进共享 SQLite secret store,取密出站流量走 egress proxy 的 allowlist。

预期结果:上述文件里不再出现明文 API key。注意 SecretRef 是按凭据逐项启用的(opt-in),不会自动迁移。

第 3 步:运行审计 ​

操作:执行

bash
openclaw secrets audit --check

检查是否还有明文残留。 hardened-baseline 的完整审计项与对应命令参数,以官方 security 文档为准。

预期结果:报告显示无 plaintext residue。若有残留,按报告指向的文件回到第 2 步继续迁移。

验证 ​

  1. 重启 Gateway,确认各渠道与模型正常工作——凭据已从 SecretRef 加载。
  2. 再跑一次 openclaw secrets audit --check,结果为无残留。
  3. 在测试渠道发一条诱导性消息(例如要求读取 .env),确认审批会绑定确切的请求、命令、会话与人,而不是被静默放行——这是 2.0 安全模型的核心行为。

常见坑 ​

  • 只清理了 openclaw.json,漏掉 .env 和生成的 agents/*/agent/models.json,审计照样报明文。
  • 以为开了 SecretRef 就万事大吉:它是逐凭据启用的,每个凭据都要单独迁移,直到 audit 报告干净为止。
  • 把 skills 或 MCP 工具的输出直接并入上下文:这会扩大注入面,必须配合第 1 步的信任标注和上一课的工具权限。
  • hardened-baseline 建议的具体默认配置项清单,待核对官方文档后补充。

下一课 ​

安全基线跑通后,下一课「CLI 命令与配置速查」汇总你日常运维最常用的命令与配置项。

搞懂AI关于我们怎么写隐私说明

独立的第三方教程,与文中提到的任何产品及其公司没有隶属或合作关系;产品名称和商标归各自所有者。价格和政策以官方页面为准。