OpenClaw 安全问题与解决方案

OpenClaw 很好用,但它有一个特点你必须提前了解:它运行在你的本地机器上,拥有文件系统访问权限,还会向外部 API 发送请求。这三件事加在一起,如果配置不当,就会带来真实的安全风险。
值得注意的是,2026 年国家网安中心已就 OpenClaw 相关使用发布风险提示,百度百科的 OpenClaw 词条 也收录了官方安全说明,建议在部署前阅读。
这篇文章不是要吓你。OpenClaw 本身设计得相当谨慎,大多数漏洞来自用户操作失误,而不是软件本身的缺陷。但「OpenClaw 安全」这个话题值得认真对待,尤其是在你用它处理真实项目代码的时候。
我们从最高频的问题开始说起。
1. API 密钥泄露:最常见的 OpenClaw 漏洞
OpenClaw 需要连接到 AI 服务,这意味着你要配置 API 密钥。很多人第一次设置时,会直接把密钥写进配置文件或者粘贴到项目目录里,然后不小心把这个文件推送到 GitHub。
这是 OpenClaw 问题里最典型的一种,后果也最严重:密钥一旦公开,攻击者会在几分钟内发现并滥用。
正确做法:始终使用环境变量。
在你的 shell 配置文件(~/.zshrc 或 ~/.bashrc)里设置:
export ANTHROPIC_API_KEY="your-key-here"
export OPENAI_API_KEY="your-key-here"
或者在项目根目录创建 .env 文件,并立刻把它加到 .gitignore:
# .env
ANTHROPIC_API_KEY=your-key-here
OPENAI_API_KEY=your-key-here
# .gitignore
.env
.env.local
.env.*.local
永远不要把 .env 文件提交到版本库。没有例外。
如果你已经不小心提交了密钥,处理步骤是:立刻去 API 提供商的控制台撤销那个密钥,生成新密钥,然后用 git filter-branch 或 BFG Repo-Cleaner 清除历史记录。仅仅删除文件然后再提交是不够的,历史记录里还有。
2. ClawHub 技能安全:安装前先审查
ClawHub 是 OpenClaw 的技能市场,里面有几千个社区贡献的技能。大多数没问题,但你在安装前应该做基本的审查,因为技能本质上是在你机器上运行的代码。
安装前检查这几点:
首先,看作者信息。官方认证的作者和有发布历史的账号比匿名新账号可信度高。
其次,看安装量和评分。一个安装量只有个位数、上传时间是三天前的技能,需要更仔细审查。
第三,直接看源码。ClawHub 的大多数技能都是开源的,点进去看看它在做什么。特别注意这几类操作:
// 警惕这类权限请求
{
"permissions": {
"fileSystem": "write",
"network": "unrestricted",
"shell": "execute"
}
}
如果一个技能请求「不受限的网络访问」或者「shell 执行权限」,而它的功能描述只是「帮你格式化代码」,这个不匹配就是红旗。
关于推荐的安全技能,可以参考这篇文章:OpenClaw 最佳 Skills 推荐。里面列出了经过验证的常用技能,省去你自己筛选的时间。
3. 文件系统权限:控制 OpenClaw 能访问什么
OpenClaw 默认可以读取它被打开的目录下的文件。这通常够用,但如果你在一个大型 monorepo 里工作,或者项目目录里有敏感文件,你应该明确限制它的访问范围。中文社区的 X 讨论中有用户提到「洗机」风险(即权限配置不当导致整机文件被扫描),这类案例集中在没有配置 blockedPaths 的场景下,r/LocalLLaMA 上也有相关安全担忧的讨论线程。配置好访问范围是防范这类风险的第一步。
在 OpenClaw 的配置文件里,你可以设置允许访问的路径:
{
"fileAccess": {
"allowedPaths": [
"/Users/yourname/projects/my-app/src",
"/Users/yourname/projects/my-app/public"
],
"blockedPaths": [
"/Users/yourname/projects/my-app/.env",
"/Users/yourname/projects/my-app/secrets",
"/Users/yourname/.ssh"
]
}
}
blockedPaths 里应该包含:
- 所有
.env文件 - SSH 密钥目录(
~/.ssh) - 包含数据库连接字符串的配置文件
- 任何包含生产环境凭证的目录
即使你设置了允许路径,也要养成习惯:不在包含敏感文件的目录下直接打开 OpenClaw。把工作目录和凭证目录物理隔离是最简单的防护。
4. 网络安全:API 调用的代理配置
OpenClaw 向 AI 服务发送的请求包含你的代码片段和对话内容。在某些网络环境下,你可能需要通过代理设置来路由这些请求,或者需要对请求内容有更多控制。
OpenClaw 支持代理配置:
{
"network": {
"proxy": {
"http": "http://proxy.yourcompany.com:8080",
"https": "http://proxy.yourcompany.com:8080",
"noProxy": ["localhost", "127.0.0.1", "internal.yourcompany.com"]
},
"timeout": 30000,
"retries": 3
}
}
如果你在企业环境里使用 OpenClaw,IT 部门可能要求所有外部请求通过审计代理。这个配置就是用来满足这类需求的。
另外,注意 noProxy 列表。本地服务和内网地址应该绕过代理直接访问,否则会造成不必要的延迟甚至连接失败。
5. Docker 沙箱:更安全的代码执行环境
如果你用 OpenClaw 执行 AI 生成的代码(而不只是让它帮你写代码),Docker 沙箱是一个值得考虑的选项。
核心思路是:让 AI 生成的代码在一个隔离的容器里运行,而不是直接在你的宿主机上执行。即使代码有问题,破坏范围也被限制在容器内部。
基础配置如下:
# Dockerfile.openclaw-sandbox
FROM node:20-alpine
# 创建非 root 用户
RUN addgroup -S sandbox && adduser -S sandbox -G sandbox
# 设置工作目录
WORKDIR /workspace
# 只挂载必要的目录
COPY --chown=sandbox:sandbox . /workspace
USER sandbox
# 限制网络访问(根据需要调整)
在 OpenClaw 配置里启用 Docker 执行:
{
"execution": {
"sandbox": "docker",
"dockerImage": "openclaw-sandbox:latest",
"mountReadOnly": true,
"networkMode": "none"
}
}
networkMode: "none" 会完全切断容器的网络访问,适合只需要本地计算的场景。如果代码需要访问网络,改为 bridge 并配置防火墙规则。
Docker 沙箱会增加一些延迟,但对于安全要求较高的场景,这个代价是值得的。
6. 敏感数据处理:防止 AI 读取凭证
这个问题比你想象的更微妙。OpenClaw 在理解上下文时,会读取你工作目录里的文件。如果你的项目里有包含真实数据的测试 fixture,或者你在对话里粘贴了数据库查询结果,这些内容会被发送到 AI 服务。
几个实用建议:
用假数据替代真实数据。 测试 fixture 和 seed 文件里不应该有真实的用户数据、真实的 API 密钥或真实的业务数据。
在对话里用占位符。 如果你需要展示一个 JSON 结构,用这样的格式:
{
"userId": "user_xxxx",
"apiKey": "[REDACTED]",
"email": "user@example.com"
}
而不是直接粘贴真实值。
设置上下文白名单。 在 OpenClaw 配置里,你可以指定哪些文件类型会被自动读入上下文:
{
"context": {
"includeExtensions": [".ts", ".tsx", ".js", ".jsx", ".json", ".md"],
"excludePatterns": [
"**/.env*",
"**/secrets/**",
"**/*.key",
"**/*.pem",
"**/credentials*"
]
}
}
excludePatterns 用 glob 语法,确保凭证文件永远不会被自动包含进上下文。
7. 定期更新:修补已知漏洞
OpenClaw 的更新日志通常包含安全修复,但很多用户装好之后就不再更新。这是个坏习惯。
检查当前版本:
openclaw --version
通过 npm 更新到最新版:
npm update -g openclaw
或者如果你用的是 brew:
brew upgrade openclaw
建议每隔两周检查一次更新。如果有 OpenClaw 漏洞被公开披露,通常会在几天内发布补丁版本,这时候要立刻更新。
ClawHub 的技能也需要定期更新。进入 OpenClaw 的技能管理界面,检查有没有待更新的技能,安全相关的修复通常会在更新说明里标注。
常见 OpenClaw 问题排查
除了上面的安全配置,这里列几个用户经常遇到的 OpenClaw 问题及解决方法。
问题:OpenClaw 无法连接到 API
先检查 API 密钥是否正确设置,然后检查网络连接。如果你在企业网络里,可能需要配置代理设置(见第 4 节)。
# 测试 API 连接
openclaw test-connection
问题:技能安装失败
通常是网络问题或者 npm 权限问题。
# 检查 npm 权限
npm config get prefix
# 如果前缀是系统目录,考虑使用 nvm 管理 Node 版本
问题:文件访问被拒绝
检查你的 allowedPaths 配置,确认目标目录在允许列表里。同时检查操作系统级别的文件权限。
问题:响应速度变慢
可能是代理配置问题,也可能是上下文文件太多导致每次请求的 token 数量过大。检查 excludePatterns 配置,排除不需要的文件类型。
安全配置检查清单
在把 OpenClaw 用于真实项目之前,过一遍这个清单:
- API 密钥存储在环境变量里,不在配置文件里
-
.env文件已加入.gitignore -
blockedPaths包含所有凭证和密钥文件 - ClawHub 技能安装前已检查权限请求
-
excludePatterns排除了.env*和凭证文件 - 测试数据使用占位符,不含真实用户数据
- OpenClaw 版本保持最新
- 高安全要求场景启用了 Docker 沙箱
关于安装和基础配置,参考这篇文章:OpenClaw 完全安装指南 2026。安全配置需要在安装完成后才能生效,如果你还没装好,先从那里开始。
OpenClaw 的设计思路是让开发者有控制权,安全配置也是这个思路的延伸。花半小时把上面这些配置做好,之后就不用再担心了。