低风险 — 风险评分 20/100
上次扫描:2 天前 重新扫描
20 /100
subscribe-filter-feishu
订阅-过滤-飞书推送。通过WebSocket订阅数据流,大模型智能过滤,自动推送到飞书。
合法的WebSocket订阅+大模型过滤+飞书推送工具,代码行为与声明基本一致,无恶意行为发现。
技能名称subscribe-filter-feishu
分析耗时31.5s
引擎pi
可以安装
建议为 axios 添加版本锁定以防止供应链风险。

安全发现 3 项

严重性 安全发现 位置
中危
第三方依赖无版本锁定
axios使用^1.6.0,ws使用^8.14.2,可能拉取有漏洞的更新版本
"axios": "^1.6.0"
→ 固定版本如 "axios": "1.6.8"
package.json:18
低危
SKILL.md未声明allowed-tools
文档未列出skill_invoke、filesystem、network等声明,但代码确实使用了这些资源
--- name: "subscribe-filter-feishu"
→ 添加allowed-tools声明
SKILL.md:1
低危
配置文件存储敏感凭证
API密钥存储在~/.openclaw/*.json而非环境变量,与"安全工具"场景有差异
const CONFIG_PATH = path.join(os.homedir(), '.openclaw', ...
→ 考虑使用环境变量存储敏感凭证
scripts/receiver.js:35
资源类型声明权限推断权限状态证据
文件系统 NONE WRITE ✓ 一致 scripts/receiver.js:39-42 配置文件读取
文件系统 NONE WRITE ✓ 一致 scripts/receiver.js:67-68,96 PID和日志文件写入
网络访问 NONE WRITE ✓ 一致 scripts/receiver.js:103-105 WebSocket连接到ws_url
网络访问 NONE WRITE ✓ 一致 scripts/receiver.js:113-116 POST到飞书API
网络访问 NONE WRITE ✓ 一致 scripts/receiver.js:170-173 POST到LLM API
环境变量 NONE READ ✓ 一致 scripts/receiver.js:35 os.homedir()获取home路径
27 项发现
🔗
中危 外部 URL 外部 URL
https://ark.cn-beijing.volces.com/api/v3
SKILL.md:38
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz
package-lock.json:17
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/axios/-/axios-1.13.6.tgz
package-lock.json:23
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz
package-lock.json:34
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz
package-lock.json:47
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz
package-lock.json:59
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz
package-lock.json:68
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz
package-lock.json:82
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz
package-lock.json:91
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz
package-lock.json:100
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz
package-lock.json:112
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz
package-lock.json:127
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/form-data/-/form-data-4.0.5.tgz
package-lock.json:147
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz
package-lock.json:163
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz
package-lock.json:172
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz
package-lock.json:196
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz
package-lock.json:209
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz
package-lock.json:221
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz
package-lock.json:233
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz
package-lock.json:248
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz
package-lock.json:260
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz
package-lock.json:269
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz
package-lock.json:278
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz
package-lock.json:290
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/ws/-/ws-8.19.0.tgz
package-lock.json:296
🔗
中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis/auth/v3/app_access_token/internal
scripts/receiver.js:147
🔗
中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id
scripts/receiver.js:185

目录结构

6 文件 · 24.0 KB · 837 行
JavaScript 1f · 374L JSON 4f · 343L Markdown 1f · 120L
├─ 📁 scripts
│ └─ 📜 receiver.js JavaScript 374L · 9.9 KB
├─ 📋 _meta.json JSON 5L · 142 B
├─ 📋 metadata.json JSON 9L · 289 B
├─ 📋 package-lock.json JSON 316L · 10.7 KB
├─ 📋 package.json JSON 13L · 289 B
└─ 📝 SKILL.md Markdown 120L · 2.7 KB

依赖分析 2 项

包名版本来源已知漏洞备注
ws ^8.14.2 npm WebSocket客户端,版本较新
axios ^1.6.0 npm HTTP客户端,无版本锁定存在供应链风险

安全亮点

✓ 代码结构清晰,功能单一且专注
✓ 错误处理完善(try-catch、异常兜底)
✓ 网络请求目标明确(飞书API、豆包API、WebSocket源)
✓ 日志记录完整,便于审计
✓ 无命令注入、eval、base64解码等危险操作
✓ 配置文件与代码分离,敏感信息不硬编码