Unicode
Unicode是现代通用字符编码标准,UTF-8为其最常用编码方式,支持全球各语言字符,已成为现代终端的标准字符编码方案。
核心事实
时间轴 (近 90 天)
基本多文种平面之外的字符(如大多数 emoji)在 ensure_ascii 转义下变成两个转义组成的代理对
语言不可读性攻击的典型手段包括用Unicode变体字符替换敏感词汇、混用多种语言、利用低资源语言绕过过滤器,以及通过多轮对话将有害意图拆散
网页和文档中的文本内容底层依然是标准的Unicode字符编码,字体只决定字符的视觉渲染而非存储
ASCII走私利用Unicode字符集中的特殊字符,包括零宽字符、控制字符和Unicode标签字符(U+E0000至U+E007F区间)
防御ASCII走私需要在邮件网关层面进行异常Unicode字符检测、字符规范化处理并剥离不可见字符和标签字符
这些不可见字符在大多数邮件客户端中不会被显示,但存在于文本的字节流中
家庭 emoji「👨👩👧👦」由 7 个 Unicode 码点组成,即四个人物 emoji 通过三个零宽连接符(U+200D)串联而成
URL 规范 RFC 3986 规定 URL 中只允许出现 ASCII 字符的一个子集,非 ASCII 字符必须经过百分号编码才能合法使用
现代终端模拟器支持256色甚至24位真彩色,配合 Unicode 扩展字符集
零宽字符是Unicode标准中一组特殊控制字符,包括零宽空格(U+200B)、零宽连接符(U+200D)、零宽非连接符(U+200C)、左至右标记(U+200E)等,视觉上完全不可见但在字节层面真实存在
还有 3 条时间轴事件
全部知识事实 (14)
Unicode定义了多个零宽字符,如U+200B(零宽空格)、U+200C(零宽非连接符)、U+200D(零宽连接符)和U+FEFF(零宽不换行空格)
80%已验证Unicode 截至最新版本已收录超过 15 万个字符
65%待验证GB2312标准收录6,763个汉字,Unicode中的CJK统一表意文字超过9万个
90%待验证基本多文种平面之外的字符(如大多数 emoji)在 ensure_ascii 转义下变成两个转义组成的代理对
50%待验证语言不可读性攻击的典型手段包括用Unicode变体字符替换敏感词汇、混用多种语言、利用低资源语言绕过过滤器,以及通过多轮对话将有害意图拆散
50%待验证网页和文档中的文本内容底层依然是标准的Unicode字符编码,字体只决定字符的视觉渲染而非存储
50%待验证ASCII走私利用Unicode字符集中的特殊字符,包括零宽字符、控制字符和Unicode标签字符(U+E0000至U+E007F区间)
50%待验证这些不可见字符在大多数邮件客户端中不会被显示,但存在于文本的字节流中
50%待验证防御ASCII走私需要在邮件网关层面进行异常Unicode字符检测、字符规范化处理并剥离不可见字符和标签字符
50%待验证家庭 emoji「👨👩👧👦」由 7 个 Unicode 码点组成,即四个人物 emoji 通过三个零宽连接符(U+200D)串联而成
50%待验证URL 规范 RFC 3986 规定 URL 中只允许出现 ASCII 字符的一个子集,非 ASCII 字符必须经过百分号编码才能合法使用
50%待验证现代终端模拟器支持256色甚至24位真彩色,配合 Unicode 扩展字符集
50%待验证零宽字符是Unicode标准中一组特殊控制字符,包括零宽空格(U+200B)、零宽连接符(U+200D)、零宽非连接符(U+200C)、左至右标记(U+200E)等,视觉上完全不可见但在字节层面真实存在
50%待验证Trojan Source攻击利用Unicode双向文本控制字符(如RLO等),使代码在编辑器显示与编译器解析时呈现不同逻辑,从而植入难以察觉的后门
50%