检测Unicode同形符的可混淆用法,防止同形符攻击。

confusable_homoglyphs的Python项目详细描述


可混淆的同音字[doc]

https://img.shields.io/travis/vhf/confusable_homoglyphs.svghttps://img.shields.io/pypi/v/confusable_homoglyphs.svgDocumentation Status

同形符是两个或多个具有 形状相同或非常相似wikipedia:Homoglyph

Unicode同构字在Web上可能是一个麻烦。你最受欢迎的 客户阿拉斯加州爵士,可能会对被一个骗子冒充感到不安 故意选择用户名_laskajazz。

  • AlaskaJazz是单个脚本:只有拉丁字符。
  • ΑlaskaJazz是混合脚本:第一个字符是希腊语 信。

你可能还想避免人们被骗进入 密码位于www.microsоft.comwww.faϲebook.com,而不是 www.microsoft.comwww.facebook.comHere is a utility播放 使用这些可混淆的同形符

但并非所有混合脚本字符串都必须排除,您只能 排除包含以下字符的混合脚本字符串 与您选择的某些Unicode块中的字符混淆。

  • Alloρττ很好:单个脚本。
  • AlloΓ在首选脚本别名为“拉丁文”时很好:混合脚本,但Γ不可混淆。
  • Alloρ很危险:混合脚本和ρ可能与 p

这个库与Python2和Python3兼容。

数据是最新的吗?

是的。

将提取每个字符的Unicode块别名和名称 来自this file 由Unicode联盟提供。

哪个字符的矩阵可以与哪个字符的矩阵相混淆 字符是使用this file生成的 由Unicode联盟提供。

此数据存储在两个json文件中:categories.jsonconfusables.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]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java流/下载文件,无需在Spring Boot中保留内存   kotlin/java是否有类似TryParse()的东西?   java Spring引导找不到用户类型的属性ID   java Spring 2到Spring 3的迁移:一个控制器用于多个视图   java包含多个程序包名为“安卓”的库。支持图样可提取'   java spring JPA是否支持自定义值框架?   java转义出基于文本字段的搜索栏   java AAPT:错误:未找到样式属性“安卓:attr/WindowsPlashCreenBackground”   java从文本文件中读取纬度和经度   java哪里可以找到如何使用排序的示例。顺序ignorecase(),其中nullhandling nulls last用于自定义Spring JPA如何提供查询   尝试使用Dialogflow上的Webhook动态给出响应时,java获取Webhook响应错误(206)   如何在java中替换匹配的字符串?   java模拟数学的最大价值。随机的   java Spring RestTemplate GET请求未给出正确响应   春爪哇。lang.IllegalArgumentException   java系统。load()永远不会发生   java剪辑循环不工作   java如何从maven构建中删除staxapi   java ThreadPoolExecutor的排队行为是否可以自定义,以更喜欢创建新线程而不是排队?