低风险 — 风险评分 25/100
上次扫描:1 天前 重新扫描
25 /100
article-archiver
Automatically archive web articles and Twitter Articles to Feishu documents
Article archiving tool with legitimate functionality but containing credential storage weaknesses and hardcoded API secrets that pose moderate security risks.
技能名称article-archiver
分析耗时51.0s
引擎pi
可以安装
Remove hardcoded credentials from source code and use environment variables or secure secret management for API keys and tokens. Move twitter-cookies.txt to a more secure credential store.

安全发现 3 项

严重性 安全发现 位置
中危
Hardcoded Feishu API Secret 凭证窃取
The Feishu app_secret is hardcoded in plain text within archive-simple.py. This credential should be stored in environment variables or a secure secret manager.
app_secret":"gdEsio0WzDtHEhHFeLS55wBseDpExVtg"
→ Use environment variable FEISHU_APP_SECRET or integrate with a secret manager like Vault or AWS Secrets Manager.
scripts/archive-simple.py:30
中危
Plain Text Twitter Credential Storage 敏感访问
Twitter authentication tokens (auth_token, ct0, twid) are stored in plain text in config/twitter-cookies.txt. This file is readable and contains sensitive session credentials.
auth_token=170c0acd24505948b5d0a7f7d216c635bf1a9988;...
→ Use encrypted storage or environment variables for sensitive tokens. Consider using a credentials manager.
config/twitter-cookies.txt:1
低危
Incomplete Capability Declaration 文档欺骗
SKILL.md does not explicitly declare that this skill accesses credential files (twitter-cookies.txt) or makes direct API calls with stored secrets.
SKILL.md describes web_fetch and feishu_doc tool usage but does not mention direct API calls with hardcoded credentials
→ Add a 'Security Considerations' section documenting credential storage and API usage patterns.
SKILL.md:1
资源类型声明权限推断权限状态证据
文件系统 READ READ ✓ 一致 SKILL.md declares read access; scripts read config files and scripts
命令执行 WRITE WRITE ✓ 一致 SKILL.md declares shell:WRITE; bash scripts execute commands via subprocess
网络访问 READ READ ✓ 一致 SKILL.md declares web_fetch usage; scripts make HTTP requests to Twitter and Fei…
浏览器 READ READ ✓ 一致 SKILL.md declares agent-browser usage for page extraction
环境变量 NONE NONE No environment variable access detected
48 项发现
🔗
中危 外部 URL 外部 URL
https://pbs.twimg.com/media/[^
LESSONS.md:259
🔗
中危 外部 URL 外部 URL
https://qingzhao.feishu.cn/wiki/UUlNwgXSriOGf4kD0RLcECSVnYo
LESSONS.md:304
🔗
中危 外部 URL 外部 URL
https://qingzhao.feishu.cn/wiki/ZVCFwN7bci1uyhknLpucA18FnSe):
SKILL.md:67
🔗
中危 外部 URL 外部 URL
https://x.com/...
SKILL.md:109
🔗
中危 外部 URL 外部 URL
https://twitter.com/...
SKILL.md:109
🔗
中危 外部 URL 外部 URL
https://mp.weixin.qq.com/...
SKILL.md:110
🔗
中危 外部 URL 外部 URL
https://qingzhao.feishu.cn/wiki/$EXISTING_NODE
SKILL.md:140
🔗
中危 外部 URL 外部 URL
https://qingzhao.feishu.cn/wiki/YziUwLVlBi9BX7kVtkJcf7nQns2
SKILL.md:460
🔗
中危 外部 URL 外部 URL
https://x.com/username/status/123456789
SKILL.md:523
🔗
中危 外部 URL 外部 URL
https://twitter.com/username/status/123456789
SKILL.md:524
🔗
中危 外部 URL 外部 URL
https://mp.weixin.qq.com/s/...
SKILL.md:534
🔗
中危 外部 URL 外部 URL
https://x.com/mkdir700/status/2020652753190887566
SKILL.md:557
🔗
中危 外部 URL 外部 URL
https://qingzhao.feishu.cn/wiki/XXX
SKILL.md:573
🔗
中危 外部 URL 外部 URL
https://mp.weixin.qq.com/s/abc123
SKILL.md:599
🔗
中危 外部 URL 外部 URL
https://x.com/someuser/status/123(Cookie
SKILL.md:618
🔗
中危 外部 URL 外部 URL
https://x.com/someuser/status/123
SKILL.md:632
🔗
中危 外部 URL 外部 URL
https://qingzhao.feishu.cn/docx/NZHpd5xHxoTjYPxlVfpcaKtOnvh
SKILL.md:736
🔗
中危 外部 URL 外部 URL
https://x.com/lumoswhy/status/2030807300257300613
SKILL.md:740
🔗
中危 外部 URL 外部 URL
https://developer.volcengine.com/articles/7615547765435432996
SKILL.md:909
🔗
中危 外部 URL 外部 URL
https://qingzhao.feishu.cn/wiki/ZVCFwN7bci1uyhknLpucA18FnSe
SKILL.md:910
🔗
中危 外部 URL 外部 URL
https://pbs.twimg.com/media/...?format=jpg&name=small
SKILL.md:931
🔗
中危 外部 URL 外部 URL
https://qingzhao.feishu.cn/wiki/$NODE_TOKEN
SKILL.md:985
🔗
中危 外部 URL 外部 URL
https://x.com/boniusex/status/2029596431250841754|E58awyhKHiaNWwkVdchcWr70njf|openclaw
data/archived_urls.txt:1
🔗
中危 外部 URL 外部 URL
https://note.mowen.cn/detail/sCcf75BwEV5ONYvR1es_P
evals/evals.json:6
🔗
中危 外部 URL 外部 URL
https://x.com/example/status/123456789
evals/evals.json:11
🔗
中危 外部 URL 外部 URL
https://mp.weixin.qq.com/s/xxxxx
evals/evals.json:16
🔗
中危 外部 URL 外部 URL
https://note.mowen.cn/detail/abc123
evals/evals.json:21
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/@mixmark-io/domino/-/domino-2.2.0.tgz
package-lock.json:19
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/fsevents/-/fsevents-2.3.2.tgz
package-lock.json:25
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/playwright/-/playwright-1.58.2.tgz
package-lock.json:39
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/playwright-core/-/playwright-core-1.58.2.tgz
package-lock.json:57
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/turndown/-/turndown-7.2.2.tgz
package-lock.json:69
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.2.tgz
package-lock.json:78
🔗
中危 外部 URL 外部 URL
https://r.jina.ai/$
scripts/archive-article.js:68
🔗
中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal
scripts/archive-long-article-v2.py:60
🔗
中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis/wiki/v2/spaces/
scripts/archive-long-article-v2.py:64
🔗
中危 外部 URL 外部 URL
https://qingzhao.feishu.cn/wiki/
scripts/archive-long-article-v2.py:179
🔗
中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis/wiki/v2/spaces/$
scripts/archive-long-article.js:136
🔗
中危 外部 URL 外部 URL
https://qingzhao.feishu.cn/wiki/$
scripts/archive-long-article.js:149
🔗
中危 外部 URL 外部 URL
https://qingzhao.feishu.cn/wiki/PS7lwR0vfiryRckijxBcFmXhnWd
scripts/config.sh:6
🔗
中危 外部 URL 外部 URL
https://pbs.twimg.com/media/...)
scripts/html-to-markdown-v2.js:6
🔗
中危 外部 URL 外部 URL
https://pbs.twimg.com
scripts/html-to-markdown-v4.js:100
🔗
中危 外部 URL 外部 URL
https://pbs.twimg.com/media/image1.jpg
scripts/test-contentblocks.js:23
🔗
中危 外部 URL 外部 URL
https://pbs.twimg.com/media/image2.jpg
scripts/test-contentblocks.js:27
🔗
中危 外部 URL 外部 URL
https://pbs.twimg.com/media/image3.jpg
scripts/test-contentblocks.js:35
🔗
中危 外部 URL 外部 URL
https://pbs.twimg.com/media/image1.jpg?format=jpg&name=large
scripts/v6-modification-summary.md:64
🔗
中危 外部 URL 外部 URL
https://pbs.twimg.com/media/image2.jpg?format=jpg&name=large
scripts/v6-modification-summary.md:72
🔗
中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis/docx/v1/documents/
test_image_insert.py:22

目录结构

40 文件 · 174.1 KB · 5874 行
JavaScript 17f · 2779L Markdown 3f · 1536L Python 7f · 836L Shell 8f · 585L JSON 3f · 136L Text 2f · 2L
├─ 📁 config
│ ├─ 🔧 feishu-locations.sh Shell 19L · 651 B
│ └─ 📄 twitter-cookies.txt Text 1L · 248 B
├─ 📁 data
│ └─ 📄 archived_urls.txt Text 1L · 154 B
├─ 📁 evals
│ └─ 📋 evals.json JSON 36L · 1.5 KB
├─ 📁 scripts
│ ├─ 📜 archive-article.js JavaScript 127L · 3.6 KB
│ ├─ 🔧 archive-example.sh Shell 94L · 2.4 KB
│ ├─ 🐍 archive-long-article-v2.py Python 234L · 7.8 KB
│ ├─ 📜 archive-long-article.js JavaScript 199L · 6.4 KB
│ ├─ 🐍 archive-long-article.py Python 193L · 6.8 KB
│ ├─ 🔧 archive-long-article.sh Shell 152L · 3.8 KB
│ ├─ 🐍 archive-simple.py Python 146L · 5.0 KB
│ ├─ 🔧 archive.sh Shell 73L · 1.5 KB
│ ├─ 🔧 check-duplicate.sh Shell 41L · 1.1 KB
│ ├─ 🔧 config.sh Shell 32L · 829 B
│ ├─ 📜 convert-v2-to-blocks.js JavaScript 71L · 1.6 KB
│ ├─ 📜 extract-article.js JavaScript 214L · 6.0 KB
│ ├─ 📜 fetch-twitter-article-formatted.js JavaScript 131L · 3.8 KB
│ ├─ 📜 fetch-twitter-article.js JavaScript 135L · 3.8 KB
│ ├─ 📜 html-to-markdown-final.js JavaScript 133L · 4.0 KB
│ ├─ 📜 html-to-markdown-fixed.js JavaScript 152L · 4.9 KB
│ ├─ 📜 html-to-markdown-turndown.js JavaScript 181L · 5.1 KB
│ ├─ 📜 html-to-markdown-v2.js JavaScript 199L · 6.0 KB
│ ├─ 📜 html-to-markdown-v3.js JavaScript 156L · 4.6 KB
│ ├─ 📜 html-to-markdown-v4.js JavaScript 241L · 6.6 KB
│ ├─ 📜 html-to-markdown-v5.js JavaScript 246L · 6.9 KB
│ ├─ 📜 html-to-markdown-v6.js JavaScript 238L · 7.7 KB
│ ├─ 📜 html-to-markdown.js JavaScript 133L · 4.0 KB
│ ├─ 🐍 prepare-segments.py Python 82L · 2.7 KB
│ ├─ 📜 test-contentblocks.js JavaScript 132L · 3.7 KB
│ ├─ 📜 test-image-extraction.js JavaScript 91L · 2.8 KB
│ ├─ 🐍 upload-image.py Python 52L · 1.6 KB
│ ├─ 🔧 upload-markdown-to-feishu.sh Shell 82L · 2.2 KB
│ ├─ 🔧 upload-to-feishu-batch.sh Shell 92L · 2.1 KB
│ ├─ 📝 v6-modification-summary.md Markdown 102L · 2.7 KB
│ └─ 🐍 write-to-doc.py Python 65L · 2.1 KB
├─ 📝 LESSONS.md Markdown 316L · 9.8 KB
├─ 📋 package-lock.json JSON 83L · 2.7 KB
├─ 📋 package.json JSON 17L · 346 B
├─ 📝 SKILL.md Markdown 1118L · 32.2 KB
└─ 🐍 test_image_insert.py Python 64L · 2.3 KB

依赖分析 3 项

包名版本来源已知漏洞备注
playwright ^1.58.2 npm Trusted package, version loosely pinned
turndown ^7.2.2 npm Trusted package for HTML to Markdown conversion
turndown-plugin-gfm ^1.0.2 npm GFM extension for turndown

安全亮点

✓ No reverse shell or C2 communication detected
✓ No data exfiltration beyond intended article archiving
✓ No obfuscated code or base64-encoded malicious payloads
✓ No unauthorized access to SSH keys, AWS credentials, or .env files
✓ Code is readable and well-documented
✓ Uses legitimate dependencies (Playwright, turndown) from trusted sources
✓ Functionality aligns with documented purpose (article archiving)