跳转到正文
报告库
用途分类 / 其他用途

Firecrawl Interact Skill 安全审计

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

|

第三方安全检查结论

发现安全风险

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

允许通过 npx 运行未固定版本的 CLI

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

工具权限允许执行任意 `npx firecrawl-cli` 子命令,但 Skill 没有固定软件包版本或完整性摘要。若本机没有缓存,npx 通常可能解析并运行当前仓库版本;所提供文本没有说明安装来源验证。

为什么需要注意

如果解析到被入侵、冒名或产生破坏性变更的软件包版本,该软件包代码可能以代理进程的权限运行,并接触该进程可访问的文件、环境变量和网络。

这段证据能说明什么

允许工具模式确实包含未注明版本的 `npx firecrawl-cli`,但正文没有命令实际调用它,也没有可见的安装或包解析说明。仅凭权限声明无法确定 Skill 是否会下载并执行远程包,或环境是否已固定、缓存或封装该命令。用户可要求作者说明解析来源并固定版本与完整性校验。

这项判断针对展示的代码和适用条件,不表示风险已经实际发生。
SKILL.md:5来自说明文档打开原文件
  Drive a live browser on a scraped page: click, fill forms, log in, paginate, infinite-scroll. Use when content requires interaction or a scrape failed or returned incomplete content.allowed-tools:  - Bash(firecrawl *)  - Bash(npx firecrawl-cli *)---
查看另外 2 个位置
SKILL.md:16来自说明文档打开原文件
```bash# 1. Scrape a page (scrape ID is saved automatically)firecrawl scrape "<url>"
SKILL.md:36来自说明文档打开原文件
Run `firecrawl interact --help` for the full option list.
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。未发现风险
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 3 项风险
中风险

自然语言交互可在登录账户中执行有副作用的网页操作

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

该 Skill 的实际能力包括登录、点击和填写表单,而完成标准同时接受“内容或操作结果”。它没有要求在提交表单、购买、发布、删除或更改账户设置前再次确认,也没有把交互限制为只读操作。

为什么需要注意

如果宽泛或误解的请求使浏览器点击提交类控件,可能以用户身份发送表单或改变账户、订单及公开内容。

该 Skill 明确授权在实时页面中点击、填写表单和登录,并把“操作结果”列为完成条件。自然语言指令可能在已登录账户中触发外部状态变更,而可见说明没有要求在提交、购买、发布、删除或设置变更前确认。风险取决于用户给出的页面和指令;用户可要求作者加入敏感操作确认及只读限制。

SKILL.md:4来自说明文档打开原文件
description: |  Drive a live browser on a scraped page: click, fill forms, log in, paginate, infinite-scroll. Use when content requires interaction or a scrape failed or returned incomplete content.allowed-tools:
查看另外 3 个位置
SKILL.md:20来自说明文档打开原文件
# 2. Interact with the page using a positional promptfirecrawl interact "Click the login button"firecrawl interact "Fill in the email field with test@example.com"firecrawl interact "Extract the pricing table"
SKILL.md:38来自说明文档打开原文件
**Done when:** the requested content or action result is captured and the session is stopped with `firecrawl interact stop`.
SKILL.md:12来自说明文档打开原文件
Interact with scraped pages in a live browser session. Scrape a page first, then use natural language prompts or code to click, fill forms, navigate, and extract data. For web searches, use `search` — interact is for acting on a specific page.
中风险

持久化 profile 会延长已登录会话的可用范围

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

文档指示保存 Cookie 和 localStorage,并展示稍后以同一 profile 直接访问已认证仪表板。普通重连默认可继续修改 profile,只有显式添加 `--no-save-changes` 才是只读。

为什么需要注意

能够使用该 profile 的后续交互可能继承用户的登录权限,并读取账户数据或代表用户执行操作;残留状态也可能让原本应匿名的后续任务保持登录。

文档明确说明 profile 会跨抓取保存 Cookie 和 localStorage,并演示稍后直接访问已认证仪表板。这扩大了会话凭据被后续任务或同名 profile 使用的时间和范围。`--no-save-changes` 仅被描述为不写入 profile 状态,不能证明网页交互本身只读。用户可要求隔离 profile、缩短保留期并默认禁止保存变更。

SKILL.md:42来自说明文档打开原文件
Use `--profile` on the scrape to persist browser state (cookies, localStorage) across scrapes:
查看另外 2 个位置
SKILL.md:45来自说明文档打开原文件
```bash# Session 1: Login and save statefirecrawl scrape "https://app.example.com/login" --profile my-appfirecrawl interact --prompt "Fill in email with user@example.com and click login"# Session 2: Come back authenticatedfirecrawl scrape "https://app.example.com/dashboard" --profile my-appfirecrawl interact --prompt "Extract the dashboard data"```
SKILL.md:54来自说明文档打开原文件
Read-only reconnect (no writes to profile state):```bashfirecrawl scrape "https://app.example.com" --profile my-app --no-save-changes```
低风险

安装命令没有固定依赖版本

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

安装命令没有指定依赖版本。同样的命令以后可能下载不同代码,你实际安装的内容可能与这次检查时不同。

为什么需要注意

即使命令和报告没变,以后安装时也可能下载到另一份代码。

这段代码的正常用途

第 7 行不是安装命令,而是允许工具列表中的命令模式;正文的实际示例均调用已可用的 `firecrawl`。因此,“安装命令没有固定依赖版本”与所引行的上下文不符。该模式确实未写版本,但没有证据表明 Skill 会执行安装。

这项判断针对展示的代码和适用条件,不表示风险已经实际发生。
SKILL.md:7来自说明文档打开原文件
  - Bash(firecrawl *)  - Bash(npx firecrawl-cli *)---
查看另外 2 个位置
SKILL.md:5来自说明文档打开原文件
  Drive a live browser on a scraped page: click, fill forms, log in, paginate, infinite-scroll. Use when content requires interaction or a scrape failed or returned incomplete content.allowed-tools:  - Bash(firecrawl *)  - Bash(npx firecrawl-cli *)---
SKILL.md:16来自说明文档打开原文件
```bash# 1. Scrape a page (scrape ID is saved automatically)firecrawl scrape "<url>"
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

4 个说明模块

该 Skill 通过 Firecrawl CLI 先抓取指定网址,再连接实时浏览器会话,以自然语言提示或代码执行点击、填写表单、登录、翻页和提取数据。

查看原文
SKILL.md:4来自说明文档打开原文件
description: |  Drive a live browser on a scraped page: click, fill forms, log in, paginate, infinite-scroll. Use when content requires interaction or a scrape failed or returned incomplete content.allowed-tools:  - Bash(firecrawl *)  - Bash(npx firecrawl-cli *)---
SKILL.md:12来自说明文档打开原文件
Interact with scraped pages in a live browser session. Scrape a page first, then use natural language prompts or code to click, fill forms, navigate, and extract data. For web searches, use `search` — interact is for acting on a specific page.

交互依赖之前抓取所生成的 ID;CLI 会自动保存该 ID,相关会话可能约十分钟后过期。

查看原文
SKILL.md:62来自说明文档打开原文件
- Always scrape first — `interact` requires a scrape ID from a previous `firecrawl scrape` call- The scrape ID is saved automatically, so you can omit `--scrape-id` for subsequent interact calls. Saved sessions may expire after about 10 minutes; re-scrape if the CLI warns that the session is stale- Use `firecrawl interact stop` to free resources when done- For parallel work, scrape multiple pages and interact with each using `--scrape-id`

命名 profile 会在多次抓取间保留 Cookie 和 localStorage,从而让之后的会话继续保持登录状态;另有明确的只读重连选项可避免写回 profile。

查看原文
SKILL.md:42来自说明文档打开原文件
Use `--profile` on the scrape to persist browser state (cookies, localStorage) across scrapes:
SKILL.md:45来自说明文档打开原文件
```bash# Session 1: Login and save statefirecrawl scrape "https://app.example.com/login" --profile my-appfirecrawl interact --prompt "Fill in email with user@example.com and click login"# Session 2: Come back authenticatedfirecrawl scrape "https://app.example.com/dashboard" --profile my-appfirecrawl interact --prompt "Extract the dashboard data"```
SKILL.md:54来自说明文档打开原文件
Read-only reconnect (no writes to profile state):```bashfirecrawl scrape "https://app.example.com" --profile my-app --no-save-changes```
从这里开始 · 工作说明SKILL.md
firecrawl-interact
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。
文件与检查记录1 个文件

检查范围与遗漏

逐文件查看涉及的内容

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

  • SKILL.md已纳入全文

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

  • SKILL.md工作说明

代码和说明中提到的操作

运行命令
SKILL.md:6来自说明文档打开原文件
allowed-tools:  - Bash(firecrawl *)  - Bash(npx firecrawl-cli *)
SKILL.md:7来自说明文档打开原文件
  - Bash(firecrawl *)  - Bash(npx firecrawl-cli *)---
SKILL.md:16来自说明文档打开原文件
```bash# 1. Scrape a page (scrape ID is saved automatically)
安装其他软件包
SKILL.md:7来自说明文档打开原文件
  - Bash(firecrawl *)  - Bash(npx firecrawl-cli *)---
连接外部网站
SKILL.md:46来自说明文档打开原文件
# Session 1: Login and save statefirecrawl scrape "https://app.example.com/login" --profile my-appfirecrawl interact --prompt "Fill in email with user@example.com and click login"
SKILL.md:50来自说明文档打开原文件
# Session 2: Come back authenticatedfirecrawl scrape "https://app.example.com/dashboard" --profile my-appfirecrawl interact --prompt "Extract the dashboard data"
SKILL.md:57来自说明文档打开原文件
```bashfirecrawl scrape "https://app.example.com" --profile my-app --no-save-changes```
读取了多少行
73
文件校验值(用于核对版本)
ce51b67e3948036aff0b819a540ccdea9ec3a2bfe0b9c8ba119517caa24901c9