首页/AI/提示词工程速查/编码混淆与清洗归一化
提示注入与防护50 条

编码混淆与清洗归一化

注入常借编码混淆穿越过滤:全角字符、Base64、Unicode 变体;清洗层做归一化与解码审计,把变体拉回统一形态。

提示词工程速查AI更新于 2026-10-13

编码混淆与归一化是什么

注入内容常借编码混淆穿越过滤:全角字母、零宽字符、Unicode 双向控制符、Base64 或十六进制编码块、HTML 实体。这些写法的共同特点是「字面不同、含义相同」,靠关键词匹配的检测会被绕过。对策是先做归一化把变体拉回统一形态再检测:归一化在检测之前,检测才有一致的作用面。

基本信息

适用平台内容抓取与上下文组装层;所有含外部文本输入的 LLM 应用
输入变换来源NIST AI 100-2 把「输入变换」列为规避检测的一类手段
执行顺序先归一化,再检测;反过来等于给变体留了缝隙
审计要求解码行为与清洗前后内容都要留痕,供事后复核

典型使用场景

  • 网页与文档入库:清洗全角混排、零宽字符与隐藏控制符
  • 用户输入入口:在检测前统一形态,避免同义变体绕过
  • 检索结果处理:编码块识别并记录,必要时解码后再检测一次
  • 附件与粘贴内容:从富文本带来的兼容字符需要统一处理
  • 回归测试:构造变体样本,验证检测在归一化前后结果一致

清洗管线示例

清洗管线示例
# 1) Unicode 归一化(NFKC):统一全角与半角、兼容字符
# 2) 去除零宽字符与控制字符(保留换行与制表符)
# 3) 识别可疑编码块(长 Base64、十六进制串、HTML 实体)并记录
# 4) 对解码结果再做一次指令样式检测(避免解码后才是真指令)
# 5) 记录清洗前后的哈希与命中项,供审计与误报复核
# 6) 保守原则:可能误伤正常内容时标记人工复核,不直接丢弃

常见混淆手法与处理顺序

手法表现处理
全角与兼容字符字母数字以全角形式出现NFKC 归一化统一形态
零宽字符肉眼不可见但改变匹配结果清洗阶段移除并计数
双向控制符文本显示顺序被改变移除后复核原文顺序
编码块长 Base64 或十六进制串识别、记录,解码后再检测
HTML 实体实体形式书写特殊字符解析阶段还原为字符
归一化要保留换行与制表符:它们承载版面结构,去掉后表格与代码块的语义会一起丢失,影响下游任务质量。
正常内容里也会出现编码块(例如技术文档中的示例数据、代码片段)。解码与拦截要分开:先记录与解码检测,命中后再按影响面决定是否拦截。

易错点

  • 只查原文字面模式会被全角与零宽字符绕过,归一化必须前置
  • 解码检测过于激进会误伤正常代码类文本,需要人工复核通道
  • Unicode 归一化过度改变正常文本语义,清洗策略要保守并保留原件
  • 清洗不记录命中项与前后哈希,误报与漏报都无法回溯分析

数据来源与参考

  • NIST AI 100-2(2024):攻击者利用输入变换规避检测的分类;OWASP LLM01 缓解建议
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌