GitHub - rurban/libu8ident: 标识符的 Unicode 安全指南

主要观点:介绍了 libu8ident 库,用于检查标识符的 Unicode 安全指南,无需添加完整 Unicode 数据库,可处理各种编译器、解释器等对 Unicode 标识符的需求,避免安全漏洞。
关键信息

  • 动机源于多个关于 Unicode 安全的资源及相关代码中的安全问题示例,如特定标识符的混淆导致逻辑错误。
  • 定义了有效字符的匹配规则,提供多种配置选项和安全级别,如不同的编码、规范化方法、混合脚本策略等。
  • 包含 API 供开发者使用,如初始化库、设置最大长度、添加脚本、检查标识符等功能。
  • 有示例程序 u8idlint 用于检查程序源文件中的 Unicode 标识符违规。
  • 介绍了内部实现细节,包括上下文脚本管理、规范化表更新等。
  • 软件采用 Apache-2.0 或 GPL-2.0 许可证,有 TODO 列表包含一些待优化和添加的功能。
    重要细节
  • 不同的配置选项如 --with-tr31 可硬编码标识符字符集,--with-profile 可设置混合脚本安全级别等。
  • API 中各种函数的功能和返回值,如 u8ident_init 初始化库,u8ident_check 检查标识符有效性等。
  • 内部实现中通过排序范围列表进行字符到脚本的查找,以及与 CRoaring 结合进行优化等。
  • TODO 列表中的各项待优化和添加功能,如 NFC 查找优化、特殊字符检查等。
阅读 6
0 条评论