安全与数据处理
哪些数据会离开您的机器,我们保留哪些数据、保留多久,以及与谁共享。本页面上的每一个期限都是代码实际执行的期限。
最后更新:September 2026
快速导航
您的数据如何流转
CrawlForge 有两种接入方式。MCP server 在您的机器上运行,直接与网站通信。REST API 则在我们的服务器上运行。二者处理您数据的方式不同,因此分别说明。
MCP 路径:结果留在您的机器上
- •您在自己的机器上安装 crawlforge-mcp-server。您的 MCP 客户端(Claude Desktop、Claude Code、Cursor 等)通过 stdio 与其通信。
- •该服务器从您的网络抓取目标网站。页面内容、提取的数据和截图直接返回给您的客户端,绝不经过 CrawlForge。
- •该服务器仅在三种情况下调用我们的 API:启动时验证您的 API 密钥、读取您的 credits 余额,以及在每次调用运行后上报该次调用。
- •一条使用报告包含工具名称、消耗的 credits、状态、耗时、服务器版本以及已对机密信息进行掩码处理的调用参数。它绝不包含结果。
- •使用语言模型的工具会在您配置的位置运行该模型:默认为本地 Ollama 实例,或者您为其设置了 API 密钥的提供商。该流量从您的机器直接发往该提供商,而不是发往我们。
REST 路径:结果经过我们的服务器并返回,不予保留
- •您的请求到达 Vercel 上的一个无服务器函数。该函数以 CrawlForge 的身份标识并签名抓取目标网站,构建响应并返回给您。
- •五个工具(stealth_mode、scrape_with_actions、agent、extract_with_llm 和 list_ollama_models)在我们于 Render 上运营的浏览器工作节点上运行。调用运行期间,页面内容会经过该工作节点。
- •响应不会被存储,仅有保留表中列出的三项限时例外:异步批处理结果、变更跟踪基线,以及为 read_result 暂存的超大结果。
- •每次调用写入一条使用记录,包含与 MCP 路径相同的已掩码参数,外加端点和方法。
- •REST API 自身不运行任何语言模型。extract_with_llm 和 agent 会将文本发送至 Render 工作节点上配置的模型端点。
我们保留哪些数据,保留多久
本表是 CrawlForge 的数据保留时间表。隐私政策中显示的是同一张表。每一个期限都来自执行该期限的代码路径;若某一期限由提供商而非我们设定,表中会予以注明。
| 数据 | 存储位置 | 保留期限 | 备注 |
|---|---|---|---|
| MCP 路径上的工具结果(页面内容、提取的数据、截图) | 仅您的机器 | 绝不发送至 CrawlForge | MCP server 直接抓取网站,仅向我们的 API 上报使用元数据。 |
| REST 路径上的工具结果 | 在 HTTP 响应中返回 | 不存储 | 下列三项限时存储是仅有的例外。 |
| 批处理结果(异步 batch_scrape 任务,通过 get_batch_results 读取) | Redis(Upstash) | 24 小时 | 到期自动失效。任务 id 是读取它们的唯一途径。 |
| 变更跟踪基线(track_changes 捕获的页面文本) | Redis(Upstash) | 90 天 | 为同一 URL 和选择器创建新基线会替换旧基线并重新计算期限。 |
| 托管监控器基线(每个受监控页面最近一次捕获的文本) | PostgreSQL(Neon) | 直到监控器被删除 | 每次检查都会替换上一次的捕获,因此只保留每个目标的最新文本。删除监控器会删除其基线。 |
| 托管监控器检查(每次检查的状态、计数、credits 以及每个目标新增和删除的行) | PostgreSQL(Neon) | 默认 30 天,可按监控器设置为 1 到 365 天 | 计划运行会删除较旧的检查;删除监控器会删除其历史记录。 |
| 为 read_result 暂存的超大结果(因过大而无法内联返回的结果) | Redis(Upstash) | 1 小时 | 存储在您的账户下。结果句柄是读取它的唯一途径。 |
| 使用日志:工具名称、已掩码的参数(包括目标 URL 或查询)、状态、耗时、credits、API 密钥 id 和客户端版本 | PostgreSQL(Neon) | 12 个月 | 每日任务会删除更早的记录。机密信息在写入记录前进行掩码处理,在仪表板中显示前再次进行掩码处理。 |
| 账户数据:电子邮件、姓名、密码哈希、登录提供商 id、设置、credits 余额和反馈调查答案 | PostgreSQL(Neon) | 账户存续期间 | 随账户一并删除。请参阅下文的账户删除。 |
| API 密钥 | PostgreSQL(Neon),以加盐 SHA-256 哈希加密钥前缀的形式存储 | 直至您将其撤销 | 完整密钥仅在创建时显示一次。它不会被存储,也无法再次显示。 |
| 登录会话 | httpOnly Cookie,并在 Redis(Upstash)中保存验证缓存 | 访问令牌 15 分钟,刷新令牌 7 天 | 登出会同时清除二者。验证缓存在 5 分钟后过期。 |
| 密码重置和电子邮件验证令牌 | PostgreSQL(Neon),以哈希形式存储 | 重置链接 1 小时,验证链接 24 小时 | 一次性使用。电子邮件中的链接是该令牌的唯一副本。 |
| 欺诈防范数据:设备指纹、风险评分和注册速率限制计数器 | PostgreSQL(Neon)和 Redis(Upstash) | 指纹和风险评分保留至账户删除;速率限制计数器 1 小时至 30 天 | 仅用于阻止滥用性的注册和密钥创建。绝不用于画像分析或广告。 |
| 支付记录 | Stripe | 以税务和会计法规要求的期限为准 | 我们存储 Stripe 客户 id 和订阅 id、方案以及账单周期。卡号绝不会到达我们的服务器。 |
| 新闻通讯订阅(电子邮件地址) | PostgreSQL(Neon) | 直至您退订 | 每封新闻通讯都附有退订链接。 |
| 已删除账户 | PostgreSQL(Neon) | 在您提出请求后 30 天内移除 | 账户、密钥、使用日志、订阅、指纹、风险评分和令牌会一并删除。Redis 条目按上述期限过期。Stripe 按法律要求保留支付记录。 |
- 数据
- MCP 路径上的工具结果(页面内容、提取的数据、截图)
- 存储位置
- 仅您的机器
- 保留期限
- 绝不发送至 CrawlForge
- 备注
- MCP server 直接抓取网站,仅向我们的 API 上报使用元数据。
- 数据
- REST 路径上的工具结果
- 存储位置
- 在 HTTP 响应中返回
- 保留期限
- 不存储
- 备注
- 下列三项限时存储是仅有的例外。
- 数据
- 批处理结果(异步 batch_scrape 任务,通过 get_batch_results 读取)
- 存储位置
- Redis(Upstash)
- 保留期限
- 24 小时
- 备注
- 到期自动失效。任务 id 是读取它们的唯一途径。
- 数据
- 变更跟踪基线(track_changes 捕获的页面文本)
- 存储位置
- Redis(Upstash)
- 保留期限
- 90 天
- 备注
- 为同一 URL 和选择器创建新基线会替换旧基线并重新计算期限。
- 数据
- 托管监控器基线(每个受监控页面最近一次捕获的文本)
- 存储位置
- PostgreSQL(Neon)
- 保留期限
- 直到监控器被删除
- 备注
- 每次检查都会替换上一次的捕获,因此只保留每个目标的最新文本。删除监控器会删除其基线。
- 数据
- 托管监控器检查(每次检查的状态、计数、credits 以及每个目标新增和删除的行)
- 存储位置
- PostgreSQL(Neon)
- 保留期限
- 默认 30 天,可按监控器设置为 1 到 365 天
- 备注
- 计划运行会删除较旧的检查;删除监控器会删除其历史记录。
- 数据
- 为 read_result 暂存的超大结果(因过大而无法内联返回的结果)
- 存储位置
- Redis(Upstash)
- 保留期限
- 1 小时
- 备注
- 存储在您的账户下。结果句柄是读取它的唯一途径。
- 数据
- 使用日志:工具名称、已掩码的参数(包括目标 URL 或查询)、状态、耗时、credits、API 密钥 id 和客户端版本
- 存储位置
- PostgreSQL(Neon)
- 保留期限
- 12 个月
- 备注
- 每日任务会删除更早的记录。机密信息在写入记录前进行掩码处理,在仪表板中显示前再次进行掩码处理。
- 数据
- 账户数据:电子邮件、姓名、密码哈希、登录提供商 id、设置、credits 余额和反馈调查答案
- 存储位置
- PostgreSQL(Neon)
- 保留期限
- 账户存续期间
- 备注
- 随账户一并删除。请参阅下文的账户删除。
- 数据
- API 密钥
- 存储位置
- PostgreSQL(Neon),以加盐 SHA-256 哈希加密钥前缀的形式存储
- 保留期限
- 直至您将其撤销
- 备注
- 完整密钥仅在创建时显示一次。它不会被存储,也无法再次显示。
- 数据
- 登录会话
- 存储位置
- httpOnly Cookie,并在 Redis(Upstash)中保存验证缓存
- 保留期限
- 访问令牌 15 分钟,刷新令牌 7 天
- 备注
- 登出会同时清除二者。验证缓存在 5 分钟后过期。
- 数据
- 密码重置和电子邮件验证令牌
- 存储位置
- PostgreSQL(Neon),以哈希形式存储
- 保留期限
- 重置链接 1 小时,验证链接 24 小时
- 备注
- 一次性使用。电子邮件中的链接是该令牌的唯一副本。
- 数据
- 欺诈防范数据:设备指纹、风险评分和注册速率限制计数器
- 存储位置
- PostgreSQL(Neon)和 Redis(Upstash)
- 保留期限
- 指纹和风险评分保留至账户删除;速率限制计数器 1 小时至 30 天
- 备注
- 仅用于阻止滥用性的注册和密钥创建。绝不用于画像分析或广告。
- 数据
- 支付记录
- 存储位置
- Stripe
- 保留期限
- 以税务和会计法规要求的期限为准
- 备注
- 我们存储 Stripe 客户 id 和订阅 id、方案以及账单周期。卡号绝不会到达我们的服务器。
- 数据
- 新闻通讯订阅(电子邮件地址)
- 存储位置
- PostgreSQL(Neon)
- 保留期限
- 直至您退订
- 备注
- 每封新闻通讯都附有退订链接。
- 数据
- 已删除账户
- 存储位置
- PostgreSQL(Neon)
- 保留期限
- 在您提出请求后 30 天内移除
- 备注
- 账户、密钥、使用日志、订阅、指纹、风险评分和令牌会一并删除。Redis 条目按上述期限过期。Stripe 按法律要求保留支付记录。
两行托管监控器数据仅在你创建监控器后才适用。没有监控器的账户不保存任何监控器数据。
子处理方
以下是您使用 CrawlForge 时会接收您数据的提供商,以及各自接收的内容。目标网站不是子处理方:它们收到的是我们以 CrawlForge 身份标识的爬虫请求,不包含任何有关您账户的信息。
| 提供商 | 用途 | 接收的内容 |
|---|---|---|
| Vercel | 网站、仪表板和 REST API 的托管 | 每个请求:IP 地址、请求头和请求正文。 |
| Neon | PostgreSQL 数据库 | 账户数据、API 密钥哈希、使用日志、订阅和欺诈防范数据。 |
| Upstash | Redis | 会话验证缓存、速率限制、credits 预留、批处理结果、变更跟踪基线、超大结果、webhook 幂等性标记和电子邮件去重标记。 |
| Render | 为五个 REST 工具提供浏览器和语言模型工作节点:stealth_mode、scrape_with_actions、agent、extract_with_llm 和 list_ollama_models | 调用运行期间的目标 URL、请求参数和页面内容。extract_with_llm 和 agent 发送给语言模型的文本会发往此工作节点上配置的模型端点。 |
| Stripe | 支付和订阅 | 电子邮件、姓名、您在 Stripe 结账页面输入的银行卡信息,以及购买历史。 |
| Resend | 交易类电子邮件 | 电子邮件地址、姓名以及每封邮件的内容:验证链接、密码重置、账单和 credits 提醒,以及新闻通讯。 |
| Sentry | 错误监控 | 堆栈跟踪和请求元数据。Cookie、授权头、API 密钥、令牌和密码会在事件发送前被移除。 |
| Google、GitHub | 使用 Google 或 GitHub 登录(仅当您选择时) | 我们从提供商处收到您的电子邮件、姓名和头像。提供商会得知您登录了 CrawlForge。 |
| Google Custom Search、DataForSEO | 为 search_web 和 serp_rank 提供搜索结果 | 搜索查询,对于 serp_rank 还包括被排名的域名。 |
| Arctic Shift、PullPush、reddit.com | 为 reddit_search 提供 Reddit 存档 | 搜索查询。 |
- 提供商
- Vercel
- 用途
- 网站、仪表板和 REST API 的托管
- 接收的内容
- 每个请求:IP 地址、请求头和请求正文。
- 提供商
- Neon
- 用途
- PostgreSQL 数据库
- 接收的内容
- 账户数据、API 密钥哈希、使用日志、订阅和欺诈防范数据。
- 提供商
- Upstash
- 用途
- Redis
- 接收的内容
- 会话验证缓存、速率限制、credits 预留、批处理结果、变更跟踪基线、超大结果、webhook 幂等性标记和电子邮件去重标记。
- 提供商
- Render
- 用途
- 为五个 REST 工具提供浏览器和语言模型工作节点:stealth_mode、scrape_with_actions、agent、extract_with_llm 和 list_ollama_models
- 接收的内容
- 调用运行期间的目标 URL、请求参数和页面内容。extract_with_llm 和 agent 发送给语言模型的文本会发往此工作节点上配置的模型端点。
- 提供商
- Stripe
- 用途
- 支付和订阅
- 接收的内容
- 电子邮件、姓名、您在 Stripe 结账页面输入的银行卡信息,以及购买历史。
- 提供商
- Resend
- 用途
- 交易类电子邮件
- 接收的内容
- 电子邮件地址、姓名以及每封邮件的内容:验证链接、密码重置、账单和 credits 提醒,以及新闻通讯。
- 提供商
- Sentry
- 用途
- 错误监控
- 接收的内容
- 堆栈跟踪和请求元数据。Cookie、授权头、API 密钥、令牌和密码会在事件发送前被移除。
- 提供商
- Google、GitHub
- 用途
- 使用 Google 或 GitHub 登录(仅当您选择时)
- 接收的内容
- 我们从提供商处收到您的电子邮件、姓名和头像。提供商会得知您登录了 CrawlForge。
- 提供商
- Google Custom Search、DataForSEO
- 用途
- 为 search_web 和 serp_rank 提供搜索结果
- 接收的内容
- 搜索查询,对于 serp_rank 还包括被排名的域名。
- 提供商
- Arctic Shift、PullPush、reddit.com
- 用途
- 为 reddit_search 提供 Reddit 存档
- 接收的内容
- 搜索查询。
我们的主要基础设施位于美国。在任何提供商接收客户数据之前,我们都会先将其加入此列表。
爬虫身份与网站所有者控制
两种接入方式以相同的方式标识自身,并在每次抓取时遵循相同的规则。网站所有者无需猜测即可验证、限速或屏蔽我们。
- •每个出站请求都携带 User-Agent CrawlForge/<version> (+https://crawlforge.dev)。在 MCP server 和 REST API 上,产品标识均为 CrawlForge。
- •每个出站请求都按照 RFC 9421(Web Bot Auth 配置文件)使用 Ed25519 签名。公钥目录位于 /.well-known/http-message-signatures-directory,因此网站可以验证自称来自 CrawlForge 的请求是否属实。
- •两种接入方式默认均遵守 robots.txt。调用方可以传入 respect_robots: false;该覆盖是显式的,会在响应中返回警告,并在使用日志中记录到对应的 API 密钥名下。
- •我们不破解 CAPTCHA,也不伪造挑战令牌。挑战页面会被报告为已屏蔽,而不是被绕过。stealth_mode 让真实浏览器像真实浏览器一样渲染页面;它不会突破访问控制。
- •选择退出的网站所有者会被加入永久屏蔽列表,该列表适用于两种接入方式,且任何客户都无法覆盖。如需退出,请发送邮件至 simon@crawlforge.dev。
- •已停用的标识 CrawlForge-Bot 仍作为禁止规则被遵守,因此网站所有者在更名前编写的规则继续有效。
凭据与加密
我们如何处理您提供的机密信息,以及我们不作何种声明。
- •所有发往 crawlforge.dev 的流量均使用 TLS,且网站会发送 Strict-Transport-Security 头。
- •密码使用 bcrypt 进行哈希处理。我们绝不会看到或存储密码本身。
- •API 密钥在存储前使用 SHA-256 和服务器端盐值进行哈希处理,并与仪表板中显示的密钥前缀一同存储。完整密钥仅以明文形式出现一次,即在创建它的响应中。我们无法恢复它,因此丢失的密钥只能撤销并更换,无法找回。
- •登录会话使用有效期 15 分钟的 JWT 和有效期 7 天的刷新令牌,二者均存放在 httpOnly、secure、same-site 的 Cookie 中。会更改状态的仪表板请求均携带 CSRF 令牌。
- •密码重置和电子邮件验证链接是一次性令牌,以哈希形式存储,有效期分别为 1 小时和 24 小时。
- •您请求中的机密信息,例如 scrape_with_actions 输入的密码、代理凭据或授权头,会在写入使用记录前进行掩码处理,并在仪表板中显示前再次进行掩码处理。
- •Neon 和 Upstash 对静态存储的数据进行加密,且与它们的每个连接均使用 TLS。
- •我们不作的声明:CrawlForge 未持有 SOC 2 或 ISO 27001 认证,尚未为账户提供多因素身份验证,也未委托第三方进行渗透测试。如果您的采购需要其中任何一项,请在购买前向我们询问其进展。
账户删除
目前删除需通过请求办理。仪表板尚未提供自助删除功能。
- •请使用您账户上的电子邮件地址向 simon@crawlforge.dev 发送邮件,主题为 "Delete my account"(删除我的账户)。在移除任何内容之前,我们会回复确认。
- •请先取消任何有效订阅,或要求我们在删除过程中一并取消。未使用的 credits 不予退款。
- •我们会在 30 天内删除账户记录,连同您的 API 密钥、使用日志、订阅记录、设备指纹、风险评分和令牌。Redis 中的条目按保留表中的期限过期,最长 90 天。
- •Stripe 按税务和会计法规要求的期限保留支付记录。删除完成后,我们不会保留任何能识别您身份的信息。
- •如果您订阅了新闻通讯,请在请求中说明,该订阅将同时被移除。
漏洞披露
如果您在网站、API、crawlforge-mcp-server 软件包或 SDK 中发现安全问题,请直接告知我们。详细信息也发布于 /.well-known/security.txt。
- •请发送邮件至 simon@crawlforge.dev,主题为 "Security"(安全)。请附上受影响的 URL 或工具、复现步骤以及您观察到的影响。
- •我们会在五个工作日内确认收到报告,并在问题修复前持续向您通报进展。我们不设有偿漏洞赏金计划。
- •请仅针对您自己的账户和 API 密钥进行测试。请勿访问、修改或删除其他客户的数据。
- •禁止拒绝服务攻击,禁止大规模扫描,禁止对 CrawlForge 工作人员进行社会工程攻击,也禁止针对我们工具所抓取的目标网站进行测试。
- •一旦能够证明该问题,请立即停止并报告。请勿保留您所触及的数据。
- •我们请求在问题公开前给予合理的修复时间;如您愿意,我们会在修复中致谢您。
遵循上述规则的研究即为经授权的研究。我们不会对其采取法律行动,也不会向执法部门举报。