Scan Report
5 /100
baoyu-url-to-markdown
Fetch any URL and convert to markdown using Chrome CDP, with HTML snapshot, media localization, and Defuddle-first conversion pipeline
baoyu-url-to-markdown v1.58.1 是一个合法的网页抓取+Markdown转换工具,所有网络/文件系统/shell操作均与声明功能一致,预扫描报告的「硬编码IP 130.0.0.0」实为 Chrome User-Agent 版本占位符而非真实外连地址,无恶意行为。
Safe to install
可直接使用。静态扫描器将 Chrome UA 版本号误报为硬编码 IP,建议更新扫描规则排除此类误报。
Findings 3 items
| Severity | Finding | Location |
|---|---|---|
| Info | 预扫描器误报:硬编码 IP 实为 Chrome UA 版本占位符 | scripts/constants.ts:4 |
| Info | defuddle/node 导入路径未在 package.json 中显式声明 | scripts/defuddle-converter.ts:1 |
| Info | baoyu-chrome-cdp 为本地 vendor 库 | scripts/package.json:8 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Network | READ | READ | ✓ Aligned | main.ts:101 访问 https://defuddle.md/<url>(SKILL.md:207 声明的 fallback API); media-l… |
| Shell | WRITE | WRITE | ✓ Aligned | cdp.ts 通过 spawn() 启动 Chrome 进程(vendor/index.ts:438),与 SKILL.md 声明的「Chrome CDP」功能… |
| Filesystem | WRITE | WRITE | ✓ Aligned | main.ts 保存 markdown 和 HTML 快照到用户指定输出目录(SKILL.md:88 声明); media-localizer.ts 下载图片/… |
| Environment | READ | READ | ✓ Aligned | paths.ts 读取 URL_CHROME_PATH、URL_DATA_DIR、URL_CHROME_PROFILE_DIR(SKILL.md:143 声明)… |
| Browser | WRITE | WRITE | ✓ Aligned | cdp.ts 通过 Chrome DevTools Protocol 控制 Chrome 行为(SKILL.md 核心功能声明) |
1 High 5 findings
High IP Address 硬编码 IP 地址
130.0.0.0 scripts/constants.ts:4 Medium External URL 外部 URL
https://defuddle.md/ SKILL.md:207 Medium External URL 外部 URL
https://defuddle.md/stephango.com SKILL.md:255 Medium External URL 外部 URL
https://defuddle.md/$ scripts/main.ts:101 Medium External URL 外部 URL
https://gemini.google.com/app scripts/vendor/baoyu-chrome-cdp/src/index.test.ts:242 File Tree
15 files · 104.6 KB · 3199 lines TypeScript 11f · 2809L
Markdown 2f · 367L
JSON 2f · 23L
├─
▾
references
│ └─
▾
config
│ └─
first-time-setup.md
Markdown
├─
▾
scripts
│ ├─
▾
vendor
│ │ └─
▾
baoyu-chrome-cdp
│ │ ├─
▾
src
│ │ │ ├─
index.test.ts
TypeScript
│ │ │ └─
index.ts
TypeScript
│ │ └─
package.json
JSON
│ ├─
cdp.ts
TypeScript
│ ├─
constants.ts
TypeScript
│ ├─
defuddle-converter.ts
TypeScript
│ ├─
html-to-markdown.ts
TypeScript
│ ├─
legacy-converter.ts
TypeScript
│ ├─
main.ts
TypeScript
│ ├─
markdown-conversion-shared.ts
TypeScript
│ ├─
media-localizer.ts
TypeScript
│ ├─
package.json
JSON
│ └─
paths.ts
TypeScript
└─
SKILL.md
Markdown
Dependencies 7 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
defuddle | ^0.12.0 | npm | No | package.json 声明 ^0.12.0;代码使用 'defuddle/node' 子路径导入,需确认包版本支持此路径 |
baoyu-chrome-cdp | 0.1.0 (local) | file:./vendor/baoyu-chrome-cdp | No | 本地 vendor 库,非 npm 官方包;经代码审查无恶意逻辑 |
@mozilla/readability | ^0.6.0 | npm | No | Mozilla 官方项目 |
jsdom | ^24.1.3 | npm | No | 知名 DOM 模拟库 |
turndown | ^7.2.2 | npm | No | HTML→Markdown 转换库 |
turndown-plugin-gfm | ^1.0.2 | npm | No | Turndown GitHub 风格 Markdown 插件 |
linkedom | ^0.18.12 | npm | No | 轻量级 HTML/DOM 替代库 |
Security Positives
✓ SKILL.md 文档完整,所有脚本目录、CLI 参数、转换流程、fallback 机制均有清晰说明
✓ 声明的能力(Chrome CDP、URL 抓取、Markdown 转换、媒体下载)与实际代码完全对应,无阴影功能
✓ credential 处理规范:只读取 Chrome profile 目录,无 SSH/AWS 等敏感凭证路径访问
✓ 外部网络访问范围受控:仅 defuddle.md fallback API + 用户 markdown 中引用的媒体资源,无裸 IP 连接
✓ 依赖生态干净:均为成熟的网页处理库(@mozilla/readability、turndown、jsdom、defuddle),无可疑第三方包
✓ 敏感文件检查:未发现 .env、~/.ssh、~/.aws 等敏感路径访问
✓ 无 eval/字符串动态执行、无 base64 解码管道、无远程脚本下载(curl | bash / wget | sh)