隐私说明
一句话版本
文件不会离开你的设备。所有解析、清理、打包都在浏览器里执行。服务端只发送静态网页文件,从未接收过任何用户上传的图片、视频或 PDF。
技术上怎么保证
- 页面用静态方式构建与分发:没有接收文件的上传接口,也没有可写入的后端。
- 图片读取使用 File API,处理依赖 ArrayBuffer 与 Canvas,均在本地内存中完成。
- HEIC 解码、C2PA 校验所需的 wasm 模块由站点自己提供,在浏览器内运行,不上传数据。
- 批量下载用 fflate 在本地打包成 ZIP,不经过服务器。
- 页面加载完成后,断网仍可正常使用全部清理功能 —— 这就是本地处理的直接证明。
浏览器会记录什么
| 项目 | 是否发生 | 说明 |
|---|---|---|
| 上传文件到服务器 | 否 | 没有上传接口 |
| 把文件名发给服务端 | 否 | 文件名只用于生成下载名 |
| 读取剪贴板 | 仅在你主动粘贴时 | 用于支持 ⌘V 粘贴截图 |
| 写入本地存储 | 是 | 只存一个语言偏好(键名 ail.locale),不保存处理历史 |
| 服务端访问日志 | 可能记录页面访问 | 含 IP 与路径,不含文件内容 |
| 页面访问统计(GA4) | 是 | 路径、来源、国家、设备、事件计数;不写 cookie,见下节 |
| 页面访问统计(百度统计) | 是(会写 cookie) | 路径、来源、设备、屏幕分辨率;cookie 最长 400 天,见下节 |
页面访问统计
本站使用 Google Analytics 4 记录访问统计: 哪个页面被打开、从哪个搜索引擎进来、大致哪个国家、什么设备, 以及工具内的事件计数(例如「点了清理、处理了 3 个文件、全部成功」)。 这些数据用来判断哪些页面真的有人需要 —— 没有它,改文案只能靠猜。
统计里不含任何文件信息。记录的是「点了清理、处理 3 个文件、全部成功」这样的计数, 不含文件名、不含元数据内容、不含处理结果里的任何字段值。 这一点由代码强制:埋点函数会直接拒绝长度超过 40 字符的字符串参数, 文件名一定会超过这个长度,所以传不进去。
同意模式(Consent Mode)默认设为「拒绝」:GA4 不写入 _ga 等 cookie,也不做跨站标识。 代价是会话级与用户级指标会被减弱,但事件计数照常到达,足够判断工具是否被用成功。
另外使用 百度统计 作为第二套访问统计, 与 GA4 并行运行 —— 两家的拦截率、域名可达性和处理延迟都不相同, 单看任何一边都可能偏离真实流量,对照着看才敢下结论。
它与 GA4 的关键差别是会写 cookie, 实测共 4 个:Hm_lvt_…(365 天,访客时间戳)、Hm_lpvt_…(会话,最近访问时间)、HMACCOUNT(会话,访客编号)、HMACCOUNT_BFESS(域为 hm.baidu.com,400 天,用于跨站识别回访访客)。 GA4 在「拒绝」模式下不写 cookie,百度统计没有等价的关闭开关 —— 所以上文「不弹同意横幅」这句话只对 GA4 成立,不适用于百度统计。
不想被写这些 cookie:拦截 hm.baidu.com 即可,工具功能完全不受影响; 或者用浏览器的无痕窗口访问。
如果你用广告拦截插件把它拦掉,工具的全部功能不受影响 —— 统计失败是静默的, 不会影响任何一次清理。
如果这个承诺被破坏,是最严重的问题
对一个宣称「不上传」的工具来说,偷偷上传是根本性的背信。 你可以用浏览器开发者工具 → Network 面板自行验证:处理任意文件时,不会出现携带文件内容的请求。 这也是我们建议你做的验证 —— 不要只相信说明文字。
第三方依赖
为了保证可验证性,运行时的外部依赖被压到最低: libheif(wasm,用于 HEIC 解码)、c2pa-web(wasm,用于 C2PA 清单解析)、fflate(本地 ZIP 打包)。 三者都是在你浏览器里运行的代码,不承担数据传输职能。