首页/AI/提示词工程速查/隐藏文本与不可见字符
提示注入与防护50 条

隐藏文本与不可见字符

网页与文档可以藏起指令:小字、白底白字、零宽字符与注释;文本清洗要能去掉不可见字符并保留可视结构。

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

隐藏文本注入是什么

网页与文档可以把指令藏起来:白底白字、字号极小、绝对定位移出可视区、零宽字符拼接、HTML 注释、脚本与元数据。人看页面时完全察觉不到,但抓取工具通常按源码或全文本转字符串,于是这些文字会原样进入模型上下文。这类手法的特点是暴露面集中在「内容获取」环节,因此防护重点在文本清洗与解析阶段,而不是模型本身。

基本信息

常见载体网页、PDF、Word 文档、邮件正文、代码仓库中的配置文件
技术手段样式隐藏(颜色、字号、定位)、零宽字符、Unicode 双向控制符、注释与脚本
防护位置抓取与解析阶段的可见性判断,加上入上下文前的归一化与扫描
取证要求保留原始副本,清洗后的副本才用于模型输入

典型使用场景

  • 网页摘要:抓取正文时排除隐藏元素,只取可见文本
  • 文档入库:PDF 与 Office 文档入库前去掉隐藏文本层与批注内容
  • 邮件处理:过滤 HTML 邮件中的不可见片段再交给模型读取
  • 代码仓库扫描:注意配置文件中的注释与不可见字符
  • 安全测试:构造含隐藏文字的样本,验证清洗链路是否覆盖

清洗要点

清洗要点
# 1) 先做 Unicode 归一化(NFKC),去除零宽字符与双向控制符
# 2) 解析阶段按可见性筛选文本节点:颜色与背景同色、display:none、
#    字号过小、定位在可视区外的元素都排除
# 3) 丢弃 HTML 注释、脚本与样式表中的文本
# 4) 提取正文后再做一遍指令样式模式扫描,两处都命中才升级处置
# 5) 保留原始副本用于取证,清洗结果记录命中项与位置,便于复核
# 6) 清洗规则要保守:宁可留下可疑文本交扫描处理,也不要误删正常内容

隐藏手法与应对

手法检测方式应对
样式隐藏对比元素颜色与背景、字号、定位按可见性取文本,不做全文转字符串
零宽字符扫描 Unicode 码位区间归一化时移除,并记录命中次数
双向控制符扫描对应的控制字符移除后复核显示顺序是否被篡改
注释与脚本解析树中区分节点类型丢弃注释、脚本与样式内容
元数据与批注读取文档属性与批注层默认不进入正文,按需单独审核
清洗命中率本身是有价值的监控信号:某来源的隐藏字符命中量突然升高,往往意味着有人在做针对性尝试,值得单独核查。
不要为了省事直接把 HTML 剥标签成纯文本。那样会把注释、脚本与隐藏元素一起带进上下文,把防护点从解析层推到更晚的位置,成本更高。

易错点

  • 简单剥标签会把注释与脚本文本一起带入上下文,隐藏指令直接生效
  • Unicode 归一化过度会改变正常文本含义,需要保守策略并保留原始副本
  • 清洗后不记录命中项,无法判断是内容本身可疑还是规则过严
  • 只处理网页不处理文档与邮件,同一类手法从其他通道进入

数据来源与参考

  • 间接提示注入中的隐藏内容手法(Greshake et al., 2023)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌