💡
原文中文,约3600字,阅读约需9分钟。
📝
内容提要
最近,Github在Code Review中出现了一个警告信息,提醒代码中存在双向Unicode文本。双向文本指的是一些语言从左到右,而另一些从右到左。早期的计算机只支持从左到右的文本,难以支持从右到左的文本。双向文本支持可以在同一页面上混合不同脚本的字符。Github警告的原因是使用Unicode中的控制字符可以改变代码的行为。文章还提到了一个安全问题,攻击者可以利用双向文本来改变源代码的逻辑。另外,还介绍了通过不可见字符和同形字符在源代码中进行攻击的示例。
🎯
关键要点
- Github在Code Review中出现双向Unicode文本的警告信息。
- 双向文本是指一些语言从左到右,而另一些从右到左的文本混合。
- 早期计算机仅支持从左到右的文本,难以支持从右到左的文本。
- 双向文本支持允许在同一页面上混合不同书写方向的字符。
- Github警告的原因是使用Unicode控制字符可能改变代码的行为。
- 示例代码展示了如何通过控制字符影响代码执行结果。
- 安全问题CVE-2021-42574允许通过控制序列对字符进行视觉重新排序,可能导致源代码逻辑被攻击者利用。
- 不可见字符和同形字符可以在源代码中埋下安全隐患。
- 开发者需要检查代码中是否存在双向文本和相关的安全问题。
➡️