隐私与数据边界

端侧 AI CSV 导出的表格公式注入边界

审查用户可能用电子表格打开的端侧 AI 导出文件,区分 RFC CSV 字段语法与单元格公式解释;只接受已实测的消费者版本和导入路径。

审核状态: 内容已校验;中文稿供用户审核 · 2026-10-08 · Fact IDs: ANDROID-PRIVACY-01, PRIVACY-01, CSV-INTERPRETATION-2026-10

直接回答

CSV 文件本身是文本,但电子表格在用户打开或导入时可能把某些单元格解释成公式。RFC 4180 的引用规则解决 CSV 字段结构问题:正确表示逗号、换行和双引号;它没有规定每个表格消费者必须把单元格当作普通字符串。OWASP 记录了公式注入风险,并指出缓解方式会因消费者而异;还特别提醒 Excel 保存后重新打开时可能移除引号或转义符。因此,CSV 格式正确与电子表格执行安全是两个独立验收项。 本地模型、OCR 阶段或用户编辑的历史内容都可能产生以公式敏感字符开头的值,不需要有恶意攻击者才会发生。OWASP 提到等号、加号、减号、@ 符号和控制字符等前缀;分隔符和引号还可能把危险内容切进新的单元格,即使整段原文开头并不危险。某些区域设置下还可能涉及全角变体。所有进入这个导出接收端的字符串都应视为不可信,包括标题、姓名、摘要、标识符和模型重新格式化的字段。预览和用户确认有助于用户理解文件,但不会使表格自动把单元格视为文本。 不要为让 CSV 看起来安全而静默篡改值。前缀 apostrophe 或 tab 可能改变下游工具读取到的内容;OWASP 描述了特定 Excel 工作流中观察到的 tab 行为,同时提醒其他程序可能不同,且 tab 会留在数据里。双引号字段和转义内嵌引号是 CSV 结构规则,但不是通用公式防护。不得声称单一 sanitizer、分隔符、把扩展名改成 .txt 或在前面加撇号就能保护所有表格、导入路径及另存重开流程。 按照用户真正的目标选择导出合同。如果必须要工作簿,应使用能将不可信值写成显式字符串单元格的维护中写入库,然后实测具体库与消费者版本。如果必须给 CSV,就记录要支持的应用名称、版本/构建、操作系统、区域/列表分隔符,以及用户直接打开还是通过导入向导。对危险或尚未测试的值,默认可以拒绝该模式、只在明确复核后排除字段,或提供另一种非表格数据格式;不能在用户之后可能粘贴到表格时宣称备选格式绝对安全。 导出还要保留来源和用户意图。向用户展示哪些字段来自模型输出、原文或用户编辑,让用户检查字面值;若某种变换改变了字段,应明确说明。若某条导出路径无法在保留准确值的同时避免其在目标消费者中变成公式,就应拒绝或把该模式标为不支持,而不是悄悄插入字符。即使推理一直离线,写文件仍是明确的数据边界;要单独审核保存和分享目的地,未观察实际路径前不能声称文件上传或未上传。 只使用无害合成 canary。测试公式 =1+1 可能被计算为 2,可据此检测目标程序是保留字面文本还是求值;不要导出真实公式载荷,也不要把测试数据发送到外部工具。覆盖引号、逗号、分隔符、CR/LF、前置空格/控制字符、公式前缀和 Unicode 变体。对指定表格版本和区域分别执行直接打开、显式导入、保存、关闭、重新打开。再通过适当的测试路径读回单元格,比对精确字面值、单元格文本/公式状态、行列边界,以及任何已说明的前缀变更。报告只限实际观察到的组合。 ANDROID-PRIVACY-01 要求应用负责数据访问与用户控制;PRIVACY-01 说明端侧推理不能证明其他数据路径不存在。这些事实支持认真处理导出边界,但不支持任何 CSV 缓解结论。本文是电子表格导出验证方法,不声称 Cove 实现了 CSV 导出、各表格行为一致,或一次测试可以认证其他版本。

电子表格把导出的译文当成公式

用户把挑选的本地历史记录导出为 CSV,准备用电子表格审核。其中一个生成或复制字段以公式标记开头;普通 CSV 引号能保持字段结构,却不一定阻止目标程序解释单元格。

决策

将行结构和单元格解释设为不同合同,为目标消费者选择经过测试的文本类型路径;否则拒绝危险 CSV 值并保留原始字面值供用户查看。

预期结果

用户获得经目标消费者验证的导出,或明确得知该电子表格模式暂不支持;不会暗示存在通用净化保证。

需要收集的证据

只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:

  • ANDROID-PRIVACY-01:应用需对数据访问、存储与用户控制负责;本事实不定义 CSV 注入缓解方式。
  • PRIVACY-01:端侧推理不证明导出、分享和其他应用数据路径都没有网络行为。
  • CSV-INTERPRETATION-2026-10:RFC 字段语法和表格公式解释是不同边界;任何消费者缓解都需注明实际版本与导入路径。
  • OWASP CSV Injection 与 RFC 4180 分别描述表格公式风险和 CSV 字段语法;一种不能代替另一种。

隐私声明需要数据清单和流量证据;“本地模型”标签本身不是证明。

实施流程

  1. 声明实际导出消费者合同. 记录目标是 CSV 还是工作簿、表格应用及测试版本、操作系统、区域/列表分隔符,以及直接打开还是导入向导。把 CSV 字段语法与表格单元格解释分开测试。
  2. 盘点字段并保留字面值. 追踪源文本、模型输出和用户编辑如何进入每个导出列。预览确切的值和来源,并标明任何变换;不能默默加撇号、tab、引号或其他字符改变数据后仍称其为原文。
  3. 构造无害公式与 CSV 方言夹具. 用合成测试夹具,包括可能被表格计算为 2 的无害公式 =1+1、加/减/@ 前缀、tab、CR/LF、分隔符/引号切列探针、前置空格和全角形式。另测逗号、内嵌引号与换行,独立验证 RFC 式 CSV 结构和公式求值。
  4. 测试消费者完整生命周期. 对每个声明的消费者构建和区域,分别走直接打开与支持的导入向导,检查单元格是字面文本还是公式;再保存、关闭、重新打开,比较精确值与行边界。只看首次预览不能证明保存重开仍安全。
  5. 选择经过测试的安全模式或拒绝. 只有在已测试写入库与目标消费者后,才优先采用显式字符串单元格工作簿。若必须 CSV,只启用特定实测的路径并披露任何值变更;否则阻止该导出,或提供独立审核过的非表格格式,不要称备选方案普遍安全。

让每个阶段的状态都可观察。失败信息应指出阶段、模型、运行时和恢复动作,同时避免记录用户私密内容。

验收标准

  • CSV 对逗号、引号和换行的字段引用单独验证;不能把它当作目标表格不会执行公式的证明。
  • 报告指定消费者版本、区域和导入路径,并用无害合成夹具完成保存/重开和精确值比对。
  • 不把未经测试的净化器、扩展名、撇号或 tab 前缀说成通用方案;任何数据变更均清楚显示,未支持情况默认拒绝或明确选择替代格式。
  • 预览区能区分原文、模型值和用户编辑,不声称 Cove 当前已实现 CSV 导出或测试过某项表格防护。

决策对照表

维度选择或证据解读方式
RFC 4180 CSV 字段引用对含分隔符、换行或双引号的字段加引号,并转义内嵌引号按格式规则保护记录/字段解析;不保证表格把字段当普通文本而非公式。
工作簿里的显式字符串单元格用经过测试的工作簿写入库以文本类型写值可避免 CSV 自动类型识别,但仍须测试库版本、目标应用及导入/打开路径。
基于前缀的 CSV 缓解在类似公式的值前加 tab 或 apostrophe可能改变数据和消费者行为;OWASP 记录 Excel 特定观察,并提醒保存重开及跨消费者差异。
拒绝不支持的表格导出阻止风险 CSV 值或提供复核过的其他格式对未测试行为保持诚实;替代格式仍需独立验证消费者与隐私边界。

需要避免的失败模式

  • 把 RFC 字段双引号当作单元格文本或公式安全保证。
  • 把某个 Excel/LibreOffice 版本观察到的前缀行为说成通用 sanitizer。
  • 为“修复”公式而静默插入字符,改变用户要保留的字面值。
  • 只检查初次打开,不测另存、关闭、重新打开与区域分隔符。

还要避免静默回退、版本未固定、缺少取消处理,以及把不同配置的结果混在一起下结论。失败运行也应与成功记录一并保存。

最小复现记录

层级记录内容
设备厂商、型号、芯片、内存档位、操作系统版本
软件应用版本和 Git 提交号
模型系列、变体、版本、格式、文件长度、摘要、量化方式
运行时名称、版本、请求后端及实际后端证据
工作负载样例版本、输入摘要、提示词摘要、输出策略
结果完成、失败、取消、回退及保护隐私的诊断信息

发布检查表

  • ☐ 主要搜索问题已回答,且没有未经支持的数字。
  • ☐ 所有模型文件和运行时版本均已固定。
  • ☐ 代表性任务和失败处理策略均有说明。
  • ☐ 生命周期、取消、清理和回退均已测试。
  • ☐ 用户内容与网络边界均有说明。
  • ☐ 结论只适用于被记录的配置。
  • ☐ 新增测试结果时链接到原始方法或证据。

来源与相关证据

中文部署与排错专题见。奇连 AI 端侧专题。

常见问题

CSV 单元格加双引号能阻止公式执行吗?

不能。RFC 式双引号让分隔符和换行留在字段内;用户打开或导入文件时,表格仍可能把单元格值解释为公式。

加一个撇号或 tab 就能让所有 CSV 安全吗?

不能。OWASP 记录了特定消费者行为,也提醒 Excel 保存再打开时可能移除引号或转义。前缀会改变底层值,必须测试准确的消费者并说明变换。

把扩展名从 CSV 改成 TXT 算安全修复吗?

不算。扩展名不会规定电子表格如何导入单元格。要测试真实导入路径;没有证据支持的模式应拒绝,而不是靠改名宣称安全。

要用真实模型输出或真实公式载荷测试吗?

不需要。无害合成公式 =1+1 可能被计算为 2,足以检测目标是否按公式解释。测试留在本地,不把模型或用户内容发送到外部表格、服务或测试端点。