检测Unicode同形符的可混淆用法,防止同形符攻击。
confusable_homoglyphs的Python项目详细描述
可混淆的同音字[doc]
同形符是两个或多个具有 形状相同或非常相似wikipedia:Homoglyph
Unicode同构字在Web上可能是一个麻烦。你最受欢迎的 客户阿拉斯加州爵士,可能会对被一个骗子冒充感到不安 故意选择用户名_laskajazz。
- AlaskaJazz是单个脚本:只有拉丁字符。
- ΑlaskaJazz是混合脚本:第一个字符是希腊语 信。
你可能还想避免人们被骗进入 密码位于www.microsоft.com或www.faϲebook.com,而不是 www.microsoft.com或www.facebook.com。Here is a utility播放 使用这些可混淆的同形符。
但并非所有混合脚本字符串都必须排除,您只能 排除包含以下字符的混合脚本字符串 与您选择的某些Unicode块中的字符混淆。
- Allo和ρττ很好:单个脚本。
- AlloΓ在首选脚本别名为“拉丁文”时很好:混合脚本,但Γ不可混淆。
- Alloρ很危险:混合脚本和ρ可能与 p。
这个库与Python2和Python3兼容。
数据是最新的吗?
是的。
将提取每个字符的Unicode块别名和名称 来自this file 由Unicode联盟提供。
哪个字符的矩阵可以与哪个字符的矩阵相混淆 字符是使用this file生成的 由Unicode联盟提供。
此数据存储在两个json文件中:categories.json和 confusables.json。如果删除它们,它们都将由 下载和解析上述两个文件并存储为json 又是文件。
历史
1.0.0
初次发布。
2.0.0
- 允许的类别重命名为允许的别名
3.0.0
由Ryan P Kilby提供,通过https://github.com/vhf/confusable_homoglyphs/pull/6:
- 将文件路径更改为相对于可混淆的包目录而不是用户的当前工作目录。
- 数据文件现在随打包一起分发。
- 修复测试,以便它们使用已安装的发行版而不是本地文件。(最初,数据文件在测试期间错误地显示,尽管没有包含在分布中)。
- 将数据文件生成移动到简单的cli中。这样,用户就可以控制数据文件的更新时间。
- 由于数据文件现在包含在分发版中,因此cli是可选的。它的依赖项可以通过cli包安装,例如pip install confusable_homogyphs[cli]。