Back to skill
Skillv1.0.0
ClawScan security
skill-fixon-homepage · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
SuspiciousMar 18, 2026, 11:35 AM
- Verdict
- suspicious
- Confidence
- medium
- Model
- gpt-5-mini
- Summary
- 实现上大体符合“主页聊天桥接”目的,但存在若干不一致与安全/运维问题(硬编码路径、依赖不一致、敏感 token 以 URL 传递、全局 pip 安装),建议在受控环境中手动审查并修正后再使用。
- Guidance
- 这个插件总体上实现了描述的主页聊天桥接功能,但在实现和安全实践上有几个需要你注意并在安装前处理的点: - 配置与密钥存放:Agent API key 和 插件的 security.api_key 存在于明文文件 ~/.openclaw/homepage/config.yaml 中,确保你信任运行主机并不要把敏感或私人数据放进被索引或上传的知识库。 - WebSocket token 泄露风险:main.py 将 gateway token 放在 URL 查询参数(?token=...),这可能出现在代理/日志中;建议改为通过头部或安全通道传递 token,或确认 Gateway 在本地网络且受限访问。 - 依赖与运行环境:init.sh 在全局环境安装依赖且未安装 websocket-client(main.py 需要),会导致运行失败或污染系统 Python。建议在受控虚拟环境(venv)或容器中运行,并手动安装缺失依赖(例如 websocket-client)。 - 可疑/不通用脚本:scripts/call_agent.sh 包含硬编码用户路径 (/Users/yaoyi/…) 并依赖本地 openclaw CLI,这个文件看起来是个人化的调试脚本;在运行前检查并删除或修正路径与行为。 - 权限与网络:只在受信任环境启动服务(默认 0.0.0.0:8080 会监听所有接口),如果仅需本机或内网访问,请修改 host 为 127.0.0.1 或在防火墙中限制端口访问;务必在配置 security.api_key 后启用认证。 建议:在沙箱/本地虚拟环境中先审查并修复脚本(添加 websocket-client,改用 venv,移除或修正 call_agent.sh 的硬编码),把敏感凭据放到更安全的存储(或至少限制文件权限),并确保 Gateway 地址可信后再在生产环境中公开该服务。
Review Dimensions
- Purpose & Capability
- ok技能名与描述(将 OpenClaw Agent 封装为 HTTP 服务,供主页访客对话)与代码/脚本总体一致:main.py 提供 /homepage/chat、/homepage/sessions 等接口,使用本地配置中的 Agent URL/API key 与 Gateway 通信。要运行这个功能,要求 python3 和 uvicorn 是合理的。唯一与目的不直接相关的项是 scripts/call_agent.sh 中的硬编码 Node CLI 路径(/Users/yaoyi/…/openclaw),这对一般用户不适用且与 SKILL.md 未声明的行为不一致。
- Instruction Scope
- noteSKILL.md 的运行指令(init.sh, start.sh, test.sh)与代码匹配,说明了编辑 ~/.openclaw/homepage/config.yaml 并启动服务。值得注意:SKILL.md/脚本会在本地写入会话(~/.openclaw/homepage/data/*.json)并记录日志,且建议不要上传敏感信息但并未强制或加密存储。scripts/call_agent.sh 使用并导出 OPENCLAW_GATEWAY_TOKEN 并调用本地 openclaw CLI — 这个脚本和其环境变量未在 SKILL.md 中充分说明,存在信息/权限外泄风险(脚本包含未通用的本地路径)。
- Install Mechanism
- concern技能没有正式的 install spec(instruction-only 风格),但包含 init.sh 会自动用 pip3 在系统范围安装依赖(pip3 install fastapi uvicorn pyyaml requests pydantic -q)。问题:1) 全局 pip 安装可能影响用户环境且未使用虚拟环境;2) main.py 依赖 websocket-client(import websocket)但 requirements.txt 和 init.sh 未包含该包,可能导致运行时错误;3) scripts 里没有下载外部可疑二进制或使用不可信 URL — 没有直接高风险下载,但实现上的安装流程是粗放的。
- Credentials
- noteSKILL.md/代码不声明需要外部环境变量,但配置文件 (~/.openclaw/homepage/config.yaml) 包含敏感字段 agent.api_key 与 security.api_key — 这是合乎目的的(需要凭据调用 Gateway/保护 HTTP 接口)。关注点:main.py 会把 gateway token 作为查询参数附在 WebSocket URL 中(...?token=...),这可能在日志/代理中泄露 token;scripts/call_agent.sh 导出 OPENCLAW_GATEWAY_TOKEN(未记录为必需)并调用一个硬编码路径的 CLI,这两点与声明的不需其它凭据不完全一致。
- Persistence & Privilege
- ok技能未请求强制常驻(always: false),不会修改其他技能配置,所有写入均局限于其自身目录 ~/.openclaw/homepage(配置、会话、日志、PID)。这种本地持久化与插件目的相符。
