安全决策报告
gzh-ai-feed
这是一个合法的微信公众号文章聚合工具,主要风险是 API Key 被嵌入生成的 HTML 报告中,建议改进。
为什么得出这个结论
1/4 个维度触发 阻止
声明与实际能力
发现 2 项声明之外的能力或越权行为。
复核
隐藏执行与外联
提取到 9 个一般风险产物,需要结合上下文判断。
通过
攻击链与高危发现
没有形成明确的恶意路径。
复核
依赖与供应链卫生
发现 1 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
敏感凭证嵌入 HTML +15
API Key 通过 html.replace("{{API_KEY}}", api_key) 写入生成的报告文件,存在泄露风险
文档声明不完整 +5
SKILL.md 未声明本地 HTTP 代理服务(8765端口)和 shell 执行(订阅)功能
最关键的证据
中危 敏感访问
API Key 嵌入生成的 HTML 报告
在 generate_report() 函数中,API Key 被直接替换到 HTML 模板并保存到文件。这意味着生成的报告文件包含敏感凭证,如果报告被分享或丢失,API Key 会泄露。
assets/daily_report.py:287 从 HTML 模板中移除 {{API_KEY}} 占位符,改为通过 JavaScript 发起带 X-API-KEY header 的请求,或在模板中写入无权限的公开信息。
低危 文档欺骗
本地 HTTP 代理服务未在文档中声明
脚本启动时会监听 127.0.0.1:8765 端口提供搜索 API 代理,SKILL.md 只提到'内置搜索功能'但未说明会启动网络服务。
assets/daily_report.py:469 在 SKILL.md 的参数说明中添加 --no-open 参数说明,并注明搜索功能依赖本地代理服务。
低危 文档欺骗
Shell 执行和系统配置未声明
--subscribe 功能会修改 crontab(macOS launchd)添加定时任务,这是高权限系统操作,但 SKILL.md 仅描述为'开启每日订阅'。
assets/daily_report.py:348 在 Known Risks 中添加'系统配置修改'风险提示,说明订阅功能会安装定时任务。
提示 供应链
依赖 requests 无版本锁定
pip3 install requests 没有指定版本,可能拉取存在漏洞的旧版本。
SKILL.md:52 建议锁定版本:requests>=2.28.0
声明能力 vs 实际能力
文件系统 通过
声明 WRITE
→ 推断 WRITE
assets/daily_report.py:480 write report 网络访问 通过
声明 READ
→ 推断 READ
assets/daily_report.py:75 POST to redfox.hk 命令执行 阻止
声明 NONE
→ 推断 WRITE
assets/daily_report.py:348 crontab | shell=True 浏览器 阻止
声明 NONE
→ 推断 WRITE
assets/daily_report.py:484 subprocess open/xdg-open 可疑产物与外联
中危 外部 URL
https://redfox.hk/settings/api-keys?source=clawhub SKILL.md:62
中危 外部 URL
https://redfox.hk/story/api/parseWork/queryAiMsgs assets/daily_report.py:33
中危 外部 URL
https://redfox.hk/settings/api-keys?source=clawhub)-ClawHub assets/daily_report.py:148
中危 外部 URL
http://www.apple.com/DTDs/PropertyList-1.0.dtd assets/daily_report.py:604
中危 外部 URL
http://127.0.0.1: assets/daily_report.py:750
中危 外部 URL
https://redfox.hk/settings/api-keys assets/daily_report.py:813
中危 外部 URL
http://127.0.0.1:8765/ assets/daily_report.py:867
中危 外部 URL
https://clawhub.ai/user/redfox-data skill-card.md:7
中危 外部 URL
https://clawhub.ai/redfox-data/gzh-ai-feed skill-card.md:31
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| requests | * | pip | 否 | 无版本锁定,建议指定 requests>=2.28.0 |
文件构成
4 个文件 · 1859 行
Python 1 个文件 · 884 行HTML 1 个文件 · 810 行Markdown 2 个文件 · 165 行
需关注文件 · 3
assets/daily_report.py API Key 嵌入生成的 HTML 报告 · 本地 HTTP 代理服务未在文档中声明 · Shell 执行和系统配置未声明 · https://redfox.hk/story/api/parseWork/queryAiMsgs · https://redfox.hk/settings/api-keys?source=clawhub)-ClawHub · http://www.apple.com/DTDs/PropertyList-1.0.dtd · http://127.0.0.1: · https://redfox.hk/settings/api-keys · http://127.0.0.1:8765/
SKILL.md 依赖 requests 无版本锁定 · https://redfox.hk/settings/api-keys?source=clawhub
skill-card.md https://clawhub.ai/user/redfox-data · https://clawhub.ai/redfox-data/gzh-ai-feed
其他文件 · report_template.html
安全亮点
代码结构清晰,注释完整
API 调用使用 HTTPS,有 TLS 验证
API Key 支持多种配置方式(环境变量/配置文件/CLI)
错误处理完善,有重试机制
skill-card.md 提供了详细的风险提示
HTML 模板使用了 referrerpolicy="no-referrer" 保护隐私