Trusted — Risk Score 5/100
Last scan:2 days ago Rescan
5 /100
baoyu-url-to-markdown
通过Chrome CDP抓取任意URL并转换为Markdown的技能,支持完整JS渲染、HTML快照保存、媒体下载和多种转换算法
URL转Markdown技能,功能实现与声明一致,代码质量良好,无恶意行为,仅存在轻微瑕疵(硬编码示例IP)。
Skill Namebaoyu-url-to-markdown
Duration52.2s
Enginepi
Safe to install
可安全使用。建议移除常量文件中硬编码的示例IP地址以符合最佳实践。

Findings 2 items

Severity Finding Location
Low
常量文件中硬编码示例IP地址
scripts/constants.ts:4 包含硬编码的IP地址130.0.0.0,该IP为私有地址示例值,不构成实际威胁但不符合安全最佳实践
export const DEFAULT_USER_AGENT = "Mozilla/5.0...Chrome/130.0.0.0 Safari/537.36";
→ 将User-Agent中的版本号130.0.0.0改为当前稳定版本号或使用变量引用
scripts/constants.ts:4
Info
外部API依赖
当本地Chrome抓取失败时,代码会调用外部API https://defuddle.md/<url> 作为fallback
const response = await fetch(`https://defuddle.md/${encodeURIComponent(targetUrl)}`)
→ 确认该API服务提供方的隐私政策,确保用户URL数据处理符合预期
scripts/main.ts:104
ResourceDeclaredInferredStatusEvidence
Filesystem WRITE WRITE ✓ Aligned SKILL.md声明Write能力,代码用于创建目录和保存markdown/html文件
Network READ READ ✓ Aligned 代码仅访问用户提供的URL、defuddle.md APIfallback、Chrome调试端口
Shell WRITE WRITE ✓ Aligned 使用spawn启动Chrome进程,属于CDP工具标准操作
Browser WRITE WRITE ✓ Aligned 通过CDP控制Chrome抓取页面是声明的核心功能
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

16 files · 104.7 KB · 3204 lines
TypeScript 11f · 2809L Markdown 2f · 367L JSON 3f · 28L
├─ 📁 references
│ └─ 📁 config
│ └─ 📝 first-time-setup.md Markdown 106L · 2.4 KB
├─ 📁 scripts
│ ├─ 📁 vendor
│ │ └─ 📁 baoyu-chrome-cdp
│ │ ├─ 📁 src
│ │ │ ├─ 📜 index.test.ts TypeScript 307L · 9.3 KB
│ │ │ └─ 📜 index.ts TypeScript 523L · 16.8 KB
│ │ └─ 📋 package.json JSON 9L · 140 B
│ ├─ 📜 cdp.ts TypeScript 179L · 5.7 KB
│ ├─ 📜 constants.ts TypeScript 13L · 544 B
│ ├─ 📜 defuddle-converter.ts TypeScript 58L · 1.9 KB
│ ├─ 📜 html-to-markdown.ts TypeScript 135L · 4.3 KB
│ ├─ 📜 legacy-converter.ts TypeScript 629L · 17.9 KB
│ ├─ 📜 main.ts TypeScript 314L · 11.1 KB
│ ├─ 📜 markdown-conversion-shared.ts TypeScript 305L · 9.7 KB
│ ├─ 📜 media-localizer.ts TypeScript 317L · 9.5 KB
│ ├─ 📋 package.json JSON 14L · 347 B
│ └─ 📜 paths.ts TypeScript 29L · 1.1 KB
├─ 📋 _meta.json JSON 5L · 142 B
└─ 📝 SKILL.md Markdown 261L · 13.9 KB

Dependencies 6 items

PackageVersionSourceKnown VulnsNotes
@mozilla/readability ^0.6.0 npm No 稳定版本
defuddle ^0.12.0 npm No 稳定版本
jsdom ^24.1.3 npm No 稳定版本
turndown ^7.2.2 npm No 稳定版本
turndown-plugin-gfm ^1.0.2 npm No 稳定版本
linkedom ^0.18.12 npm No 稳定版本

Security Positives

✓ 代码结构清晰,模块化设计良好
✓ 功能实现与SKILL.md文档声明完全一致
✓ 无凭证收割、敏感路径访问或数据外泄行为
✓ 媒体下载功能提供用户选择机制(ask/always/never)
✓ 提供多种HTML转Markdown算法(Defuddle、Readability、Next-data等),自动选择最优结果
✓ 支持Chrome profile复用,减少重复启动
✓ 错误处理完善,提供有意义的fallback机制