扫描报告
5 /100
run-coach
Science-based running coach with HD visual training plans and Garmin sync
合法的跑步教练技能,Garmin同步和Telegram图片发送功能完整声明,无恶意行为
可以安装
可安全使用。注意garminconnect依赖无版本锁定,建议在生产环境中锁定版本以防API变更
安全发现 3 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 提示 | 第三方依赖无版本锁定 | garmin/garmin-sync.py:18 |
| 提示 | 使用非官方Garmin API | SKILL.md:56 |
| 提示 | 凭证通过环境变量传递 | garmin/garmin-sync.py:38-39:38 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | WRITE | WRITE | ✓ 一致 | garmin-sync.py:67 writes JSON to garmin/activities/ |
| 网络访问 | READ | READ | ✓ 一致 | garmin-sync.py:79 client.get_activities_by_date; send-album.mjs:18 sends to api.… |
| 命令执行 | WRITE | WRITE | ✓ 一致 | SKILL.md声明exec用于bash scripts和node计算 |
| 环境变量 | READ | READ | ✓ 一致 | garmin-sync.py:38-39 reads GARMIN_EMAIL/PASSWORD; send-plan.sh:14 reads TELEGRAM… |
| 技能调用 | NONE | NONE | — | 无跨skill调用 |
| 剪贴板 | NONE | NONE | — | 代码中无clipboard访问 |
| 浏览器 | NONE | NONE | — | Playwright仅用于截图,行为与文档一致 |
| 数据库 | NONE | NONE | — | 无数据库操作 |
2 项发现
中危 外部 URL 外部 URL
https://api.telegram.org/bot$ training/send-album.mjs:18 提示 邮箱 邮箱地址
[email protected] garmin/garmin-sync.py:37 目录结构
8 文件 · 31.6 KB · 920 行 Python 2f · 473L
Markdown 2f · 228L
JavaScript 2f · 116L
Shell 2f · 103L
├─
▾
garmin
│ ├─
garmin-query.py
Python
│ └─
garmin-sync.py
Python
├─
▾
training
│ ├─
screenshot.mjs
JavaScript
│ ├─
send-album.mjs
JavaScript
│ ├─
send-plan.sh
Shell
│ └─
text-to-image.sh
Shell
├─
MEMORY.md
Markdown
└─
SKILL.md
Markdown
依赖分析 2 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
garminconnect | * | pip | 否 | 无版本锁定;使用非官方Garmin API |
playwright-core | 未声明 | system | 否 | 来自/app/node_modules,仅用于截图 |
安全亮点
✓ 文档完整,所有功能均在SKILL.md中声明
✓ 代码行为与文档描述一致,无阴影功能
✓ 凭证通过环境变量管理,未硬编码或外传
✓ 仅访问必要的工作目录文件(~/.garth缓存、garmin/数据)
✓ 无恶意行为指标:无base64管道、无eval、无敏感路径遍历、无可疑网络请求
✓ 所有shell命令执行均有明确用途(截图、图转图、计算)且已在文档声明
✓ Telegram API使用官方端点,无可疑IP或域名