低风险 — 风险评分 15/100
上次扫描:2 天前 重新扫描
15 /100
baikexia
蜗牛公司百科虾知识库 Q&A 技能包,为员工解答公司相关问题(制度、福利、流程、组织架构等)
公司内部知识库同步技能,行为符合文档描述,使用飞书API进行文档同步和消息发送,未发现恶意行为或数据外泄
技能名称baikexia
分析耗时28.9s
引擎pi
可以安装
该技能可安全使用。建议将 send-message.js 中对 config/app.json 的凭证读取改为与 sync.js 一致的方式(从 openclaw.json 读取),并统一使用 native https 模块替代 execSync+curl 以提高代码质量。

安全发现 3 项

严重性 安全发现 位置
低危
凭证配置来源不一致
SKILL.md 声明凭证存储在 openclaw.json,但 send-message.js 从 config/app.json 读取。sync.js 则正确地从 openclaw.json 读取。
const config = JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
→ 统一使用 openclaw.json 作为凭证来源,移除对 config/app.json 的依赖
scripts/send-message.js:12
低危
硬编码的飞书空间标识
sync.js 中硬编码了 WIKI_TOKEN 和 SPACE_ID,这些值被嵌入源码而非从配置文件读取。
const WIKI_TOKEN = 'VGRRw7s4BiStank4GnpczxnGn44';
→ 考虑将这些标识移至 openclaw.json 以便于维护和轮换
scripts/sync.js:28
提示
execSync 与 curl 使用
send-message.js 使用 child_process.execSync 执行 curl 命令,而非使用 native https 模块。功能上等效,但可读性和错误处理较弱。
const result = execSync(cmd, { encoding: 'utf8' });
→ 考虑使用 node 原生的 https 模块或 axios 等 HTTP 库替代 execSync+curl
scripts/send-message.js:16
资源类型声明权限推断权限状态证据
文件系统 READ READ ✓ 一致 sync.js:63-76 读取 openclaw.json
网络访问 READ READ ✓ 一致 所有网络请求仅发送到 open.feishu.cn
命令执行 WRITE WRITE ✓ 一致 send-message.js 使用 execSync 执行 curl
3 项发现
🔗
中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis
scripts/send-message.js:18
🔗
中危 外部 URL 外部 URL
https://campsnail.feishu.cn/docx/$
scripts/sync.js:540
🔗
中危 外部 URL 外部 URL
https://campsnail.feishu.cn/wiki/$
scripts/sync.js:814

目录结构

3 文件 · 42.0 KB · 1248 行
JavaScript 2f · 1031L Markdown 1f · 217L
├─ 📁 scripts
│ ├─ 📜 send-message.js JavaScript 198L · 6.1 KB
│ └─ 📜 sync.js JavaScript 833L · 29.8 KB
└─ 📝 SKILL.md Markdown 217L · 6.1 KB

安全亮点

✓ 所有网络请求均指向官方飞书 API(open.feishu.cn),无第三方或可疑地址
✓ 凭证读取逻辑合理,sync.js 从 openclaw.json 正确获取飞书账号配置
✓ 支持增量同步(通过 SHA256 hash 对比),避免不必要的数据传输
✓ 敏感信息存储在独立的 openclaw.json 中,未硬编码在脚本中
✓ 代码包含基本的错误处理和日志记录
✓ 未发现 base64 编码、eval()、远程脚本下载等高风险模式