跳转到正文
报告库
用途分类 / 文档处理

Defuddle Skill 安全审计

作者说它能做什么(原文)

Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use instead of WebFetch when the user provides a URL to read or analyze, for online documentation, articles, blog posts, or any standard web page. Do NOT use for URLs ending in .md — those are already markdown, use WebFetch directly.

第三方安全检查结论

发现安全风险

已检查文件
1
发现的风险
2
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。发现 1 项风险
中风险

要求全局安装并执行未固定版本的 npm 包

原文依据:1 处
发现了什么

当系统尚未安装 Defuddle 时,Skill 指示执行 `npm install -g defuddle`。该命令从 npm 获取当时解析到的版本,在全局环境中安装,并可能运行包的安装脚本;文本没有固定版本、校验包内容或限制安装脚本。

为什么需要注意

如果 npm 包、其依赖或发布账户被攻陷,安装过程可能以执行代理的用户权限运行代码,并读取或更改该用户可访问的文件和凭据。全局安装还会持久改变工具环境。

这是有效安装指令,不是警告或测试。系统未安装该工具时,它要求从 npm 全局安装未固定版本的 `defuddle`。执行后会修改全局软件环境;安装内容取决于当时 npm 提供的包版本,所示指令没有版本锁定或禁用安装脚本。风险成立于代理实际执行该备用安装步骤时,但源码不能证明安装已经发生或包本身恶意。用户可要求作者固定版本,并将安装限制在隔离或项目本地环境。

SKILL.md:10来自说明文档打开原文件
If not installed: `npm install -g defuddle`
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。未发现风险
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。发现 1 项风险
中风险

固定输出名可能覆盖工作区现有的 content.md

原文依据:1 处
发现了什么

“保存到文件”的示例指定当前目录中的固定文件名 `content.md`,但没有要求先检查文件是否存在、获得覆盖确认或选择唯一输出路径。

为什么需要注意

如果该 CLI 会覆盖已有输出,工作区内同名文档可能丢失或被网页内容替换;提供的材料未说明该工具遇到现有文件时是否拒绝写入。

这段证据能说明什么

Skill 确实给出了把结果写入当前目录固定名称 `content.md` 的示例,因此如果该命令会覆盖既有文件,就可能造成用户内容丢失。不过所提供源码没有说明 Defuddle 在目标已存在时会覆盖、拒绝还是询问确认;这只是“保存到文件”的示例,也没有要求每次必须采用该名称。因此存在路径冲突隐患,但候选所称覆盖行为无法仅凭这些行确认。用户可在运行前要求检查目标是否存在并使用新的输出路径。

这项判断针对展示的代码和适用条件,不表示风险已经实际发生。
SKILL.md:20来自说明文档打开原文件
Save to file:```bashdefuddle parse <url> --md -o content.md```
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。未发现风险
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

2 个说明模块

该 Skill 的用途是通过 Defuddle CLI 从普通网页提取正文,并优先输出 Markdown;这会把用户提供的网址交给本地命令行工具进行网络访问和解析。

查看原文
SKILL.md:8来自说明文档打开原文件
Use Defuddle CLI to extract clean readable content from web pages. Prefer over WebFetch for standard web pages — it removes navigation, ads, and clutter, reducing token usage.
SKILL.md:16来自说明文档打开原文件
```bashdefuddle parse <url> --md```

该 Skill 还提供将抓取结果写入当前目录的 content.md,以及单独提取标题、描述或域名等元数据的命令。

查看原文
SKILL.md:20来自说明文档打开原文件
Save to file:```bashdefuddle parse <url> --md -o content.md```
SKILL.md:26来自说明文档打开原文件
Extract specific metadata:```bashdefuddle parse <url> -p titledefuddle parse <url> -p descriptiondefuddle parse <url> -p domain```
从这里开始 · 工作说明SKILL.md
defuddle
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。
文件与检查记录1 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明

代码和说明中提到的操作

安装其他软件包
SKILL.md:10来自说明文档打开原文件
If not installed: `npm install -g defuddle`
运行命令
SKILL.md:16来自说明文档打开原文件
```bashdefuddle parse <url> --md
SKILL.md:22来自说明文档打开原文件
```bashdefuddle parse <url> --md -o content.md
SKILL.md:28来自说明文档打开原文件
```bashdefuddle parse <url> -p title
读取了多少行
42
文件校验值(用于核对版本)
802fddbc67dc8e6e7b4173e97e5802bab6df4f90ac1b9c73f45298283569b3fc