做企业级应用的后端同学,对「数据出域」这个词不陌生。等保、数据安全法、行业合规,越来越多要求是「敏感数据不出本地、不出域、不出境」。但很多效率工具(云剪贴板、在线 OCR、云同步笔记)的默认设计就是数据上云。本文复盘一个桌面端项目(yyzTools)如何从架构上做「本地优先」,把它当成一个数据合规的最小样本看:哪些数据该本地、哪些必须联网、怎么设计让用户对数据去向完全知情可控。适合做数据架构、隐私合规、零信任设计的读者参考。
一、数据出域的合规压力
近几年的合规趋势对「数据上云」越来越敏感:
- 等保 2.0:三级以上系统要求数据存储在境内、加密传输、可审计。
- 数据安全法 / 个人信息保护法:个人信息出境要单独同意,敏感数据要有安全评估。
- 行业合规:金融、政务、医疗、军工的涉密数据严禁出域,连上「可信云」都不行。
- 企业内控:客户资料、内部文档、代码私有库,企业不希望落到任何第三方服务器。
这套压力传导到工具层:用户用的工具,如果默认把数据上云,本身就是合规风险点。云剪贴板工具复制了客户联系方式自动同步到云、在线 OCR 把含密截图传到服务器、云笔记把内部文档同步--这些在个人场景便利,在企业场景是事故。
二、yyzTools 的本地优先数据分层
yyzTools(一套 Windows 桌面效率工具集,yyztools.com)的数据架构有个明确原则:本地能做的绝不联网,必须联网的明确告知去向。按数据类型分层:
第一层:强敏感 + 本地处理(不出机器)
这些数据最可能含密,全部本地处理存储:
| 数据类型 | 处理方式 | 为什么本地 |
|---|---|---|
| 剪贴板历史 | 本机存储 | 剪贴板常含密码、Token、客户资料 |
| OCR 截图与识别 | 本地引擎(RapidOCR) | 截图可能含内部文档/客户数据 |
| 文件搜索索引 | 本机索引(Everything) | 扫描的是本机文件路径 |
| 应用使用统计 | 本机存储 | 画出用户行为画像 |
这一层是合规最在意的:只要不出机器,数据安全责任主体就是用户自己,不引入第三方。yyzTools 的 OCR 跑本地引擎,截图不出本机;剪贴板历史本机存,不同步云。对企业用户,这意味着用这些功能不会产生数据出境。
第二层:必须联网 + 用户知悉去向
完全断网不现实,翻译、下载、打开网址本来就要联网。关键设计是让用户知道数据发去哪、且能选:
| 功能 | 数据去向 | 设计点 |
|---|---|---|
| 翻译 | 发给用户在设置里选的服务(DeepL/谷歌/百度等) | 不固定发给自家服务器,用户可选信任方 |
| 下载 | 目标服务器(正常上网) | 下载管理器只管多线程/续传,不代理数据 |
| 打开网址 | 目标网站 | 浏览器进程直达,不经中间服务 |
这一层的合规要点:数据去向透明 + 用户可控。翻译不偷偷发给某个固定服务器,而是让用户在设置里选服务方。用户清楚数据去哪个服务商,能按自己的合规判断选 DeepL 还是百度。
第三层:无账号 / 无遥测
账号体系和遥测是数据合规的隐形大头:
- 有账号:使用行为能和身份关联,形成「身份 - 行为」画像,合规上算个人信息处理。
- 有遥测:即使匿名,行为数据采集本身要声明、要同意、要可关。
yyzTools 的设计是无账号、无遥测、不采集使用画像。这不是「省一步注册」,是从架构上切断「身份 - 行为」关联的可能。对个人是省事,对企业是少了个人信息处理义务。
三、本地优先的架构代价
这套设计不是免费的,有明显代价:
3.1 多设备不同步
本地存储意味着「公司复制的,家里看不到」。对个人多设备用户是损失。yyzTools 的取舍是:多设备同步的便利,不值得让剪贴板/OCR 数据落第三方。用户要同步,可以自己用文件同步工具同步 yyzTools 的本地存储目录(但这不是 yyzTools 做的事)。
对企业场景,这反而是合规优势:数据天然不出公司机器。
3.2 本地引擎成本
本地 OCR 要带模型(RapidOCR 的 ONNX 模型),安装包体积大。本地处理也占 CPU/内存。云 OCR 只传截图省本地资源,但牺牲了数据不出域。yyzTools 选本地引擎,付的是体积和资源,换的是数据不出机器。
3.3 不联网功能不可用
OCR、剪贴板、文件搜索本地化后,不依赖网络就能用(这是优势)。但翻译、下载这类必须联网的功能,断网就不可用。这是功能边界,不是缺陷-- yyzTools 把「必须联网的功能」和「本地能做的功能」明确分开,用户知道哪些断网还能用。
四、数据去向的契约设计
合规不只是「数据在哪」,还要「用户知情 + 可控」。yyzTools 在数据去向上有几个设计点值得点出:
4.1 配置项即数据契约
翻译服务在设置里选--这个配置项本身就是「数据去向契约」。用户选了 DeepL,就是同意翻译文本发 DeepL;选百度,发百度。数据去向由用户配置决定,不是写死在代码里。合规审计时,看用户配置就知道数据去了哪。
4.2 无账号即无身份关联
不做账号体系,从根上切断了「行为 - 身份」关联。这对个人是隐私保护,对企业是少了个人信息处理申报。等保里「不采集个人信息」比「采集了再保护」合规成本低得多。
4.3 本地存储目录透明
yyzTools 的本地数据存在固定目录,用户可查、可备份、可清除。不像云存储,数据在哪、存多久、能不能删,都由服务方定。本地存储的合规主体是用户自己,边界清晰。
五、和云优先架构的对比
| 维度 | 云优先(云剪贴板/云 OCR) | 本地优先(yyzTools) |
|---|---|---|
| 多设备同步 | 天然支持 | 不支持(需用户自行同步) |
| 数据出域风险 | 有(默认上云) | 无(本地处理) |
| 个人信息处理 | 有(账号 + 行为关联) | 无(无账号无遥测) |
| 合规申报 | 要申报数据流向 | 数据不离开本机 |
| 断网可用 | 否 | 本地功能可用 |
| 存储责任 | 服务方 | 用户自己 |
| 服务方依赖 | 强(停服数据丢) | 无(本地独立) |
核心权衡:用多设备同步 + 服务方托管的便利,换数据出域风险 + 个人信息处理义务 + 服务方依赖。对个人轻度用户,云优先划算;对有合规要求的企业场景,本地优先几乎是唯一选择。
六、对后端数据架构的启示
yyzTools 是桌面端样本,但它的本地优先原则对后端数据架构有对应:
- 敏感数据就近处理:剪贴板/OCR/文件索引这类高频含密数据,在客户端本地处理,不传服务端。服务端只存「必须跨设备/跨用户共享」的数据。这是零信任架构的客户端延伸。
- 数据去向显式化:用户配置决定数据去向,不写死。服务端做数据流向的审计日志,让「数据去了哪」可查。yyzTools 的「翻译服务在设置里选」就是这个思路的客户端版。
- 账号最小化:能用本地存储解决的不上账号。账号是个人信息处理的起点,能少则少。企业内部工具尤其如此--内网身份够了就别再造云账号。
- 存储边界清晰:本地存什么、服务端存什么、第三方拿什么,三层边界清楚。合规审计时,每层的数据主体、责任、去向都能说清。
七、小结
数据不出域不是「不上云」这么简单,是从架构层做数据分层:强敏感数据本地处理、必须联网的数据去向透明可控、无账号无遥测切断身份关联。yyzTools 的桌面端实践是这个思路的最小样本:剪贴板/OCR/文件索引全本地、翻译去向用户可选、无账号无遥测。
代价是多设备不同步、本地引擎体积大。收益是数据不出机器、合规申报简化、服务方依赖消除。对个人是隐私保护,对企业是合规减负。
做企业级应用的后端,这套「本地优先 + 数据去向显式 + 账号最小化」的原则值得参考。数据合规的核心从来不是「云上做得多安全」,是「敏感数据根本不上云」。
项目名称:yyztools
数据架构:本地优先 · 无账号 · 无遥测 · 数据不出机器 · 永久免费