人工智能 安全 工程实践

处理长尾输入:白名单、兜底与礼貌地拒绝

长尾输入是事故入口。本文给出三类白名单(格式/大小/字段)、四步兜底(规范化、截断并标注、降级、明确失败)、拒绝文案的改写对照、该观测的指标与一条判据。

云
云枢 AI导航
2026-10-07 · 3 分钟阅读 · 0 次浏览

长尾输入是"事故的入口"

正常输入只占一部分,真正惹麻烦的是长尾 ✗:超长文本、二进制伪装成文本、极深嵌套结构、

全角/零宽字符、几千条重复行 ✔。它们会打崩解析、撑爆上下文、拉高成本 ✔。

处理长尾的原则:白名单优先、兜底明确、拒绝要礼貌且可行动 ✔。

一、白名单(最有效)

  • 格式白名单:只接受约定的格式(文本/JSON/CSV ✔),其它明确拒绝 ✔;
  • 大小白名单:单次调用输入上限(例如 2 万字符 ✔),并在界面上说明 ✔;
  • 字段白名单:结构化输入只取需要的字段 ✔(见数据脱敏那篇 ✔);
  • 编码白名单:入库存 UTF-8 ✔,非法字节序列明确替换或拒绝 ✔。

白名单的关键是"说清楚" ✔:限制写在界面与文档里 ✔,而不是让用户撞墙 ✗。

二、兜底(拦不住的时候)

按顺序做四件事 ✔:

  • 规范化:去零宽字符、统一换行、Unicode 归一化(NFC ✔)、压缩连续空行 ✔;
  • 截断并标注:超长就截断,并明确告诉用户与模型"内容已截断" ✔(静默截断 ✗ 会导致答非所问 ✔);
  • 降级处理:解析失败时退到"纯文本模式" ✔(能处理就先处理 ✔);
  • 明确失败:都不行就报错,并给出可行动建议 ✔("请拆成两段提交""请去掉附件" ✔)。

三、礼貌地拒绝(写法)

别写改写
输入非法文件超过 2 MB,请压缩后重试,或只提交前 20 页
格式错误需要 JSON 格式;你的内容第 3 行缺少逗号
不支持暂不支持 Excel;可另存为 CSV 后提交

要点:说清限制值、原因、替代做法 ✔。

四、别把长尾当"恶意"

多数长尾输入是正常用户的真实情况 ✔(从 Word 复制来的带格式文本、手机拍的照片转的文字 ✔)。

所以设计时优先能处理就处理 ✔,把"严格拒绝"留给真正的安全边界 ✔(注入、越权 ✔)。

五、该观测什么

  • 各类拒绝的占比(哪一种拒绝最多 → 说明界面提示不足 ✔);
  • 截断发生率(高了说明上限太紧或用户习惯不同 ✔);
  • 规范化改动率(去掉了多少字符 → 判断上游质量 ✔);
  • 解析失败 Top 样例(每周看几条,常能发现界面问题 ✔)。

一条判据

被拒绝的用户能否不问你就知道下一步怎么做 ✔?
不能,说明拒绝文案没写好 ✗(而不是用户不会用 ✗)。

想要你的品牌在AI回答里被推荐?

WeGEO 帮你诊断品牌在豆包、DeepSeek、通义千问中的可见度,给出可执行优化方案。