Scan Report
18 /100
category-collector
Shopify 网店分类链接采集器 - 从导航结构提取真实分类层级,处理 Ajax 懒加载,输出 CSV
Legitimate Shopify category scraper with benign code; pre-scan HIGH flag on hardcoded IP was a false positive (Chrome version string in User-Agent). Minor doc/code mismatch on declared permissions.
Safe to install
The skill is safe for use. Consider updating SKILL.md to remove the 'exec' tool declaration since no shell execution is present, and trim the 7 near-identical scripts to a single entry point.
Findings 4 items
| Severity | Finding | Location |
|---|---|---|
| Low | Pre-scan HIGH IOC was a false positive | collect-ajax.js:38 |
| Low | SKILL.md declares 'exec' tool but no shell execution is used | SKILL.md:2 |
| Low | Browser resource not declared in allowed-tools | collect.js:33 |
| Info | 5 nearly identical script variants suggest messy development artifacts | collect.js, collect-ajax.js, collect-correct.js, collect-correct-hover.js, collect-improved.js:1 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | WRITE | WRITE | ✓ Aligned | fs.writeFileSync / fs.mkdirSync used in all collect*.js files for CSV and screen… |
| Network | READ | READ | ✓ Aligned | page.goto() fetches user-supplied URLs; no external data exfiltration found |
| Shell | WRITE | NONE | ✗ Violation | SKILL.md declares 'exec' but no child_process/exec/spawn/execSync found in any .… |
| Browser | NONE | WRITE | ✗ Violation | chromium.launch(), page.hover(), page.screenshot() used in all collect*.js files… |
| Environment | NONE | NONE | — | No os.environ iteration or env key access found |
| Skill Invoke | NONE | NONE | — | No inter-skill invocation found |
| Clipboard | NONE | NONE | — | No clipboard read/write found |
| Database | NONE | NONE | — | No database access found |
1 High 8 findings
High IP Address 硬编码 IP 地址
120.0.0.0 collect-ajax.js:38 Medium External URL 外部 URL
https://shop.futvortexstore.com/ README.md:36 Medium External URL 外部 URL
https://lulumonclick-eu.shop/collections/women-women-clothes-tank-tops README.md:58 Medium External URL 外部 URL
https://shop.futvortexstore.com/collections/liverpool SKILL.md:63 Medium External URL 外部 URL
https://.../collections/premier-league/liverpool collect-correct-hover.js:299 Medium External URL 外部 URL
https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz package-lock.json:20 Medium External URL 外部 URL
https://registry.npmmirror.com/playwright/-/playwright-1.58.2.tgz package-lock.json:34 Medium External URL 外部 URL
https://registry.npmmirror.com/playwright-core/-/playwright-core-1.58.2.tgz package-lock.json:52 File Tree
12 files · 60.2 KB · 2107 lines JavaScript 7f · 1832L
Markdown 2f · 174L
JSON 3f · 101L
├─
collect-ajax.js
JavaScript
├─
collect-correct-hover.js
JavaScript
├─
collect-correct.js
JavaScript
├─
collect-improved.js
JavaScript
├─
collect.js
JavaScript
├─
debug-liverpool.js
JavaScript
├─
debug-nav.js
JavaScript
├─
package-lock.json
JSON
├─
package.json
JSON
├─
README.md
Markdown
├─
setup.json
JSON
└─
SKILL.md
Markdown
Dependencies 1 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
playwright | ^1.40.0 | npm | No | Version range not pinned, minor version updates could introduce breaking changes |
Security Positives
✓ No child_process/exec/spawn usage — the skill is pure Node.js/Playwright
✓ No credential harvesting or environment variable enumeration
✓ No data exfiltration — network calls are only to user-supplied URLs
✓ No base64/eval/atob deobfuscation patterns
✓ No sensitive path access (~/.ssh, ~/.aws, .env files)
✓ No curl|bash or wget|sh remote script execution
✓ No hidden functionality — all behavior matches the stated purpose
✓ No HTML comment injection or steganography
✓ No C2 infrastructure, reverse shells, or suspicious outbound connections