活动浏览器标签页之内
可用的本地优先工具借助浏览器 API 与按需加载的代码,转换文本、代码、图片与文档。
- 活动内存 — 输入仅保存在当前交互的页面内存中。
- 临时预览 — 生成的预览与对象 URL 是临时的,会在工作区重置或卸载时释放。
- 显式下载 — 只有明确的导出操作才会触发下载,此后由浏览器与操作系统管理。
04 / DATA BOUNDARY
Toolars 每个可用工具都声明输入在哪里处理。先读通俗的边界说明,再亲自验证——经审计的第三方主机、实际下发的安全响应头,以及这些检查背后的方法。
数字在构建时从运行时注册表推导——没有任何手写数字。
工具输入与输出留在当前标签页,除非你主动提交或导出内容。
可用的本地优先工具借助浏览器 API 与按需加载的代码,转换文本、代码、图片与文档。
在配置了 Supabase 时,身份验证、收藏、主动提交的反馈与工具请求使用范围狭窄的账户契约。
本地处理声明不能替代设备安全,也不能替代对下载文件的谨慎处理。
一份刻意保持精简的清单。工具工作区不加载任何第三方脚本;重型运行时以同源 Web Worker、WASM 和静态资产形式提供。以下是站点框架自身可能触达的全部内容。
| 服务 / 域名 | 类型 | 用途 | 数据边界 |
|---|---|---|---|
track.toolars.com | 分析 | 通过 PostHog 托管的首次方反向代理接收生产环境分析事件,经由 Cloudflare 提供服务。 | 仅无 Cookie 的允许清单事件:净化后的页面浏览、十九个指定产品事件、Web Vitals 与异常。绝不包含工具输入、输出、文件名或搜索词。SDK 仅在生产域名上懒加载。 |
us.posthog.com | 分析 | 标识托管的 PostHog 应用,用于界面链接与配置。 | 事件不流向该域名;采集走上方代理一行所列的主机。 |
project ref .supabase.co (NEXT_PUBLIC_SUPABASE_URL) | 账号后端 | 身份验证、收藏同步、Newsletter 订阅与反馈存储。 | 只在你采取明确操作时才会连接:登录、订阅或提交表单。工作区从不调用它,浏览器包内也只有 publishable key。 |
avatars.githubusercontent.com | 头像图片 | 通过 GitHub 登录的账号头像。 | 经由严格的图片优化器白名单加载,且只在已登录的顶部菜单中渲染。 |
lh3.googleusercontent.com | 头像图片 | 通过 Google 登录的账号头像。 | 同样严格的图片白名单;登录前不会加载任何内容。 |
buymeacoffee.com | 外跳链接 | 页脚可选的创作者支持链接。 | 纯外跳链接,无嵌入、无脚本;它不会收到任何关于你工具使用情况的数据。 |
chromewebstore.google.com | 外跳链接 | 扩展安装与商店列表链接。 | 仅外跳、新标签页打开;商店只会看到一次普通访问,永远不会看到工作区内容。 |
x.com / github.com | 外跳链接 | Toolars 的 X 账号与 GitHub 公开仓库链接。 | 仅在点击链接后打开;不嵌入社媒脚本,也不会自动请求这些网站。链接不附带工具输入或输出。 |
fonts.googleapis.com / fonts.gstatic.com | 构建期获取 | 通过 next/font 在构建期下载 Barlow 字体文件。 | 运行时字体由本站自有静态路径提供;使用 Toolars 期间你的浏览器不会向 Google Fonts 发起请求。 |
vercel.app (hosting platform) | 基础设施 | 托管平台,承载 Toolars 的每一个响应。 | 只看到任何主机都会看到的请求元数据(IP、请求头);工具输入与输出不会经过它。 |
cloudflare.com (DNS + proxy layer) | 基础设施 | toolars.com 的 DNS,以及分析域名背后的代理层。 | 处理与托管层相同的请求元数据;工作区内容不会流经它。 |
清单于 2026-09-19 从已部署源码审计得出:全树外部域名搜索、next.config.ts 中的图片白名单,以及 ADR 007 中的分析契约。
这些是每一个 Toolars 页面上的响应头,读取自同一份生成配置的声明——此表不可能与实际下发的内容产生漂移。
| 响应头 | 值 |
|---|---|
Strict-Transport-Security | max-age=63072000; includeSubDomains |
X-Content-Type-Options | nosniff |
Referrer-Policy | strict-origin-when-cross-origin |
X-Toolars-Release | a2f07a5231e271e8 |
Content-Security-Policy:刻意不设全站策略
Strict-Transport-SecurityX-Content-Type-OptionsReferrer-PolicyX-Toolars-ReleaseToolars 目前不发送全站 Content-Security-Policy 响应头,本页也不会假装已设置。一个屏蔽错源的策略会破坏账号同步或已批准的分析代理,因此该控制正按 ADR 010 先针对真实路由与浏览器行为设计。上方的响应头今日生效,此处列出的每个网络边界都在代码中强制执行并有测试覆盖。 docs/adr/010-local-processing-evidence.md
除了浏览器不需要任何工具。请使用无害的合成文件或示例文本——绝不要用真实敏感数据,也不要公开包含它的截图或 HAR。
这些数据由 scripts/capture-privacy-proof.mjs 使用真实浏览器针对生产构建采集。脚本检查文件上传、跨域请求和金丝雀泄漏;采集日期及对应版本随结果一同展示。
更强的做法:预热后断网再跑一次。文本与图片工具仍可工作;PDF 工具需要预热时已见过的同源 Worker 资产,这正是我们没有宣称 PDF 可离线使用的原因。
采集于 2026-09-27 · 内部验证
针对修订号 0d02cd2cc4ab3d28 采集;本页面现已发布 a2f07a5231e271e8。请先重新运行采集,再将这些数字视为当前证据。
一次完整的 PNG → JPEG 转换加下载,测试文件中藏有金丝雀标记:实测窗口内 0 个请求、0 个上传、0 次标记泄漏。
实测窗口请求数: 0
一次 HEIC → JPEG 转换加下载:约 3.3 MB 的 libheif 懒加载解码器首次使用时只从本站路径加载;实测的第二次转换产生 0 个请求、0 次上传、0 次金丝雀泄漏,带金丝雀文件名的照片从未离开设备。
实测窗口请求数: 0
/generated/runtime/7879e1c92e1bdb08/libheif.js/generated/runtime/e4aa8333fbe55ec7/libheif.wasm/generated/runtime/6c728441042ea88c/heic-decode-worker.js首次使用时,引擎、worker 和所选语言包(共 13 种,每个 0.4–2 MB)仅从本站路径加载;英语和简体中文的重复识别各产生 3 个请求、0 次上传。
实测窗口请求数: 3
GET /generated/runtime/e4d26dedc913c87f/worker.min.jsGET /generated/runtime/775a35df6f2ae100/tesseract-core-lstm.wasm.jsGET /generated/runtime/d8438d6a4fba7bc3/eng.traineddata.gz/generated/runtime/775a35df6f2ae100/tesseract-core-lstm.wasm.js/generated/runtime/89456b34c2769c9a/chi_sim.traineddata.gz/generated/runtime/d8438d6a4fba7bc3/eng.traineddata.gz/generated/runtime/e4d26dedc913c87f/worker.min.js加载内置示例、旋转并下载结果:实测窗口内 0 个请求、0 个上传、0 次标记泄漏。
实测窗口请求数: 0
这些结果仅覆盖记录的测试过程,属于内部验证,并非独立安全审计。
本地优先在这里是架构,而不是口号。三种机制让你的数据留在标签页内。
哈希、正则求值、Diff、编码与流处理都在专用 Web Worker 中运行,这些 Worker 由 scripts/build-tool-workers.mjs 从 TypeScript 编译。Worker 是来自本站的同源脚本,即使数 MB 的输入在后台运转,标签页依然保持响应。
OCR 引擎(约 4 MB)和每个 0.4–2 MB 的语言包,以及 PDF 运行时,仅在你打开工具后从本站静态路径加载。识别与解析均在本地执行,不会上传任何内容进行处理。
工具的执行包只在你打开该工具时下载——目录页和首页绝不加载。浏览目录只传输元数据,你可以在同一个 Network 面板里轻松确认。
下面列出的检查中,有一项已经公开:隐私实证采集脚本以 MIT 许可证发布在 https://github.com/aixtral/toolars-open,你可以自己针对线上站点重新运行它。其余命令仍在私有仓库中运行,使用锁定的 Node 和 pnpm 版本,其方法在本页概述。
机器可读的验证回执——命令、测量结果,以及它不能证明什么: 回执 JSON。
| 脚本 | 命令 | 它验证什么 |
|---|---|---|
本地处理验证套件scripts/verify-local-processing.mjs | corepack pnpm verify:local-processing | 重新构建站点,在全新浏览器上下文中阻断网络,用合成金丝雀重跑代表性 Workflow,并把源码与构建指纹比对生成回执。任何重试、跳过或漂移都会使运行失败。 |
开放核心依赖审计scripts/audit-local-core.mjs | corepack pnpm audit:local-core | 绘制开放面候选的执行依赖图,记录源码 SHA-256 哈希、已安装依赖版本与许可证文本。 |
Worker 构建scripts/build-tool-workers.mjs | corepack pnpm worker:build | 把每个浏览器 Web Worker 从 TypeScript 源码编译为 public/generated 下带内容哈希的文件,保证所服务的 Worker 正是被审查过的源码。 |
基准测试套件scripts/benchmark-tools.mjs | node scripts/benchmark-tools.mjs | 测量每个工具可接受的最大输入、运行时间中位数与零泄漏网络隔离,然后写入基准页背后的类型化数据。 |
隐私实证采集脚本scripts/capture-privacy-proof.mjs | node scripts/capture-privacy-proof.mjs | 在无头 Chromium 中驱动一次图片转换、OCR 引擎和一次 PDF 旋转,同时记录每个请求(包括 Web Worker 发出的请求),随后写出本页渲染的实证 JSON。一旦出现上传、跨域请求或金丝雀泄漏即判失败。 |
基准页呈现真实无头浏览器中产出的数据,包括证明输入留在设备上的金丝雀运行。
本地优先不等于零网络。以下功能会发送数据,因为它们本就依赖网络,而每一项都写明了什么会离开设备。
登录会通过 Supabase Auth 和带行级安全策略的 Postgres 同步收藏与账号状态。工具输入与输出从不属于该同步——每个工作区在未登录状态下都可使用。
页脚表单只把你输入的邮箱地址发送给 Supabase RPC。关于订阅的分析事件绝不携带该地址,遵守 ADR 007 允许清单。
这些表单通过带身份验证的服务端动作提交你撰写的文字与表单元数据,每个表单在发送前都会说明确切载荷。工作区内容绝不附加。
首次使用时,OCR 工具会从本站 /ocr 路径下载约 4 MB 引擎文件和每个所选语言 0.4–2 MB 的语言包。下载均为同源;图片与识别文字留在当前标签页,已下载的语言包仅保存在浏览器的离线缓存中。
PDF 导入与导出会重启 PDF.js Worker,它会重新获取预热阶段已见过的同源静态资产。这正是我们没有为 PDF 工具宣称完整离线可用的原因。
扩展安装、支持与社媒链接分别前往 Chrome 应用商店、Buy Me a Coffee、X 和 GitHub。它们都是普通外链,不嵌入第三方脚本。
没有第三方安全审计,也没有合规认证。单独发布的隐私实证采集脚本和两个本地 Node 包以 MIT 许可证发布;网站自身的源代码并未发布,也不授予任何许可证。本页只展示今天可验证的内容。
第三方声明——本站再分发的组件及其完整许可证文本: 声明与许可证文本。
规范修订版本: 2026-09-26.1
本地处理指工作区输入在浏览器内处理。页面、Worker 或编解码器的加载仍可能需要网络请求;账号操作和白名单内的无 Cookie 分析有各自的服务边界。
离线契约 a2f07a5231e271e8 覆盖 49 个工具,需要先在当前浏览器逐一准备。缓存可能被浏览器清理。Workflow 不保证断网重载;PDF 步骤仍可能需要加载静态 Worker 资源。
验证时,先用非敏感样例加载所需操作,再处理新样例,观察 Fetch/XHR、WebSocket 和 Worker 请求。断网重载需要单独测试。没有发现数据外传的请求记录只说明这一次操作,不等同于第三方安全审计。
对每个可用工具而言,是的:每个工具都有类型化运行时清单,声明在浏览器中处理、输入不离开设备、无保留。本页标签由这些清单生成。任何未来的云端或混合工具必须先披露边界才能上线。
设计不当的 CSP 会破坏账号同步或已批准的分析代理,因此该控制正按 ADR 010 先针对真实路由构建。在此之前,本页如实披露已生效的响应头和可能存在的外部连接,网络边界由代码强制执行并有测试覆盖。
不会。PostHog 以无 Cookie 方式运行,自动捕获、会话录制、持久化与人员画像全部禁用。允许清单只包含净化后的页面浏览、十九个指定产品事件、Web Vitals 与异常——绝不包含输入、输出、文件名或搜索词——事件只通过首次方代理域名发出。
它们在构建时从运行时注册表与目录推导,基准页则展示其数据背后的实测运行。如果目录标签与运行时清单出现分歧,分歧会直接印在本页,而不是被平均掉。
基准页呈现真实无头浏览器中产出的数据,包括证明输入留在设备上的金丝雀运行。