扫描报告
40 /100
xhs-crawler
小红书关键词爬取 Skill — 浏览器模拟搜索 + 飞书推送
Hardcoded Feishu App Secret exposed in both source code and SKILL.md documentation, plus unpinned Python dependencies with no network isolation, constitute undeclared sensitive credential exposure and dependency supply chain risk.
谨慎使用
Move Feishu App ID/Secret to environment variables or a .env file, pin all dependency versions (playwright, requests), and remove credentials from SKILL.md before deployment.
安全发现 5 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 高危 | Feishu App Secret hardcoded and documented | config.py:89 |
| 高危 | No dependency pinning — supply chain risk | package.json:9 |
| 中危 | Node.js exec() with arbitrary command injection surface | index.js:122 |
| 中危 | Chrome profile directory stored in user home | config.py:18 |
| 低危 | Pre-scan false positive: IP address misidentified | config.py:46 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | READ | WRITE | ✓ 一致 | cookie_manager.py writes cookie.txt; logs/xhs_crawler.log created; all within sk… |
| 网络访问 | READ | READ | ✓ 一致 | requests to xiaohongshu.com (search API + browser), open.feishu.cn (Feishu OpenA… |
| 命令执行 | WRITE | WRITE | ✓ 一致 | index.js uses child_process.exec() to run python script; python itself uses play… |
| 环境变量 | NONE | READ | ✓ 一致 | config.py reads no env vars; but feishu_app_bot.py sends App ID/Secret in POST b… |
1 高危 14 项发现
高危 IP 地址 硬编码 IP 地址
143.0.0.0 config.py:50 中危 外部 URL 外部 URL
https://www.xiaohongshu.com/explore auto_login_with_qrcode.py:96 中危 外部 URL 外部 URL
https://edith.xiaohongshu.com/api/sns/web/v1/search/notes config.py:30 中危 外部 URL 外部 URL
https://edith.xiaohongshu.com/api/sns/web/v1/feed config.py:31 中危 外部 URL 外部 URL
https://www.xiaohongshu.com config.py:40 中危 外部 URL 外部 URL
https://www.xiaohongshu.com/ config.py:43 中危 外部 URL 外部 URL
https://www.xiaohongshu.com/user/profile cookie_manager.py:82 中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal feishu_app_bot.py:67 中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis/im/v1/messages feishu_app_bot.py:109 中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis/im/v1/images feishu_app_bot.py:222 中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis/im/v1/chats feishu_app_bot.py:368 中危 外部 URL 外部 URL
https://www.xiaohongshu.com/explore/ xhs_crawler.py:181 中危 外部 URL 外部 URL
https://www.xiaohongshu.com/search_result?keyword= xhs_search_with_browser.py:86 中危 外部 URL 外部 URL
https://open.feishu.cn/ 使用文档.md:67 目录结构
15 文件 · 94.0 KB · 3138 行 Python 10f · 2525L
Markdown 2f · 420L
JavaScript 1f · 175L
JSON 1f · 17L
Text 1f · 1L
├─
__init__.py
Python
├─
auto_login_with_qrcode.py
Python
├─
config.py
Python
├─
cookie_manager.py
Python
├─
cookie.txt
Text
├─
example_openclaw_skill.py
Python
├─
feishu_app_bot.py
Python
├─
feishu_bot.py
Python
├─
index.js
JavaScript
├─
login.py
Python
├─
package.json
JSON
├─
SKILL.md
Markdown
├─
xhs_crawler.py
Python
├─
xhs_search_with_browser.py
Python
└─
使用文档.md
Markdown
依赖分析 3 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
playwright | * | pip | 否 | No version pinned — SKILL.md says 'pip install playwright' without version |
requests | * | pip | 否 | No version pinned — SKILL.md says 'pip install requests' without version |
node | * | system | 否 | No Node.js package.json dependencies declared |
安全亮点
✓ All capabilities declared in SKILL.md align with actual implementation — no hidden functionality detected
✓ No base64-encoded payloads, no eval(), no obfuscated JavaScript
✓ No credential harvesting beyond the Feishu app credentials (which are for the bot's own API, not user data theft)
✓ No curl|bash or wget|sh remote script downloads
✓ No access to ~/.ssh, ~/.aws, or other sensitive host credential paths
✓ No reverse shell, no C2 callbacks, no data exfiltration to unknown third-party servers
✓ Playwright import is safely guarded with try/except and PLAYWRIGHT_AVAILABLE flag
✓ Browser automation uses isolated user_data_dir per session for login flow