Scan Report
22 /100
web-reader
智能网页阅读器 - 抓取文章/下载视频并归档,支持分析、摘要、衍生
Legitimate web scraping tool with no malicious behavior, but supply chain risk from unpinned Python dependencies.
Safe to install
Pin dependency versions (e.g., pip install scrapling==x.y.z yt-dlp==x.y.z) and consider adding hash pinning for enhanced supply chain security.
Findings 2 items
| Severity | Finding | Location |
|---|---|---|
| Medium | Dependencies not pinned to specific versions Supply Chain | lib/router.py:30 |
| Low | Bundled third-party library without integrity verification Supply Chain | lib/readability.js:1 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Network | READ | READ | ✓ Aligned | SKILL.md declares network access for web fetching; article.py and video.py perfo… |
| Filesystem | WRITE | WRITE | ✓ Aligned | SKILL.md declares file writes for archive output; article.py:44 writes md_path, … |
| Shell | WRITE | WRITE | ✓ Aligned | SKILL.md declares subprocess calls to scrapling/yt-dlp/camoufox; article.py:68,9… |
| Environment | NONE | NONE | — | No os.environ iteration for secrets observed |
| credential | NONE | NONE | — | --cookies-browser allows browser cookie pass-through for yt-dlp, but no exfiltra… |
15 findings
Medium External URL 外部 URL
https://mp.weixin.qq.com/s/xxx README.md:49 Medium External URL 外部 URL
https://b23.tv/xxx README.md:55 Medium External URL 外部 URL
https://mmbiz.qpic.cn... SKILL.md:53 Medium External URL 外部 URL
https://mp.weixin.qq.com/ SKILL.md:157 Medium External URL 外部 URL
https://mmbiz\.qpic\.cn[^ lib/article.py:200 Medium External URL 外部 URL
https://www.toutiao.com/ lib/article.py:237 Medium External URL 外部 URL
http://www.apache.org/licenses/LICENSE-2.0 lib/readability.js:8 Medium External URL 外部 URL
http://code.google.com/p/arc90labs-readability lib/readability.js:19 Medium External URL 外部 URL
https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType lib/readability.js:103 Medium External URL 外部 URL
https://en.wikipedia.org/wiki/Comma#Comma_variants lib/readability.js:145 Medium External URL 外部 URL
https://schema.org/Article lib/readability.js:147 Medium External URL 外部 URL
http://mobile.slate.com lib/readability.js:992 Medium External URL 外部 URL
https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content lib/readability.js:1708 Medium External URL 外部 URL
https://searchfox.org/mozilla-central/rev/f82d5c549f046cb64ce5602bfd894b7ae807c8f8/accessible/generic/TableAccessible.cp... lib/readability.js:1924 Medium External URL 外部 URL
https://mmbiz.qpic.cn/... references/platforms.md:10 File Tree
12 files · 120.4 KB · 3443 lines JavaScript 1f · 2314L
Python 7f · 726L
Markdown 4f · 403L
├─
▾
lib
│ ├─
__init__.py
Python
│ ├─
article.py
Python
│ ├─
feishu.py
Python
│ ├─
readability.js
JavaScript
│ ├─
router.py
Python
│ ├─
utils.py
Python
│ └─
video.py
Python
├─
▾
references
│ ├─
extending.md
Markdown
│ └─
platforms.md
Markdown
├─
fetcher.py
Python
├─
README.md
Markdown
└─
SKILL.md
Markdown
Dependencies 5 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
scrapling | * | pip | No | Version not pinned in documentation or runtime checks |
yt-dlp | * | pip | No | Version not pinned; called via subprocess |
camoufox | * | pip | No | Optional dependency, version not pinned |
html2text | * | pip | No | Version not pinned |
readability.js | 1.7.1 | bundled (Apache 2.0) | No | Bundled locally, no integrity verification performed |
Security Positives
✓ No credential theft or environment variable harvesting for exfiltration
✓ No reverse shell, C2, or data exfiltration to external IPs
✓ No base64-obfuscated payloads or eval(atob()) patterns
✓ No hidden functionality — SKILL.md accurately documents all capabilities
✓ Subprocess calls are limited to documented CLI tools (scrapling, yt-dlp, camoufox) on user-provided URLs
✓ File writes are scoped to user-specified output directories
✓ No access to ~/.ssh, ~/.aws, .env, or other sensitive paths
✓ No curl|bash or wget|sh remote script execution
✓ Browser-based fetching (camoufox/scrapling StealthyFetcher) is standard legitimate web scraping