生成域名的 dnstwist 风格拼写抢注变体,并检查哪些能在 DNS 中解析。
同形字符检查器
该工具本身是英文的;本页面将用您的语言对它进行说明。
使用 同形字符检查器
功能介绍
粘贴域名、URL 或文本,即可查看每个标签的 Unicode 和 Punycode 形式、每个字符的文字系统和 UTS #39 原型,以及该名称是否混用多种文字,或读起来像另一个 ASCII 名称。
它完全在您的浏览器中运行:您输入的任何内容都不会被上传。
如何使用同形字符检查器
- 粘贴名称. 粘贴域名、URL、电子邮件地址、多行文本或整条消息。可以使用 hxxps:// 和 [.] 这类无害化写法,xn-- 标签会被解码。
- 添加真实域名(可选). 在 Compare with the real domain(与真实域名比较)中输入你预期的域名,例如你的银行的真实域名。
- 运行检查. 检查随输入即时运行,也可以按 Enter 或 Check(检查)。Shift+Enter 可添加新行。
- 查看结论. 彩色提示框显示 Lookalike risk、Check this、Looks clean 或 Notes,每项发现一行。包含多个主机的消息会得到一张表格,每个主机一条结果。
- 找出异常字母. 可疑字符会在高亮显示的域名中被标出。Characters 表格逐一列出它们的码位、文字系统以及所冒充的 ASCII 字母。
- 复制或转交. 复制 Unicode 或 Punycode 形式,或使用 Send to…(发送到…)在 DNS over HTTPS Lookup(DNS over HTTPS 查询)或 Abuse Contact Lookup(滥用投诉联系方式查询)中查询该域名。
示例
Punycode 形式的西里尔字母仿冒域名
xn--80ak6aa92e.exampleLookalike risk: Label "аррӏе" is written in Cyrillic but reads as the ASCII name "apple" (whole-script confusable).
Highlighted domain
аррӏе.example
Unicode form
аррӏе[.]example
Punycode (ACE) form
xn--80ak6aa92e[.]example
RESTRICTION LEVEL
Single Script
SCRIPTS
Cyrillic, Latin
READS AS
apple[.]example
Labels
UNICODE ACE SCRIPTS MIXED RESTRICTION LEVEL SKELETON
аррӏе xn--80ak6aa92e Cyrillic no Single Script apple
example example Latin no ASCII-Only ASCII only
Characters
CHAR CODE POINT SCRIPT UTS #39 PROTOTYPE ID STATUS FLAG
а U+0430 Cyrillic a (U+0061) Allowed looks like ASCII
р U+0440 Cyrillic p (U+0070) Allowed looks like ASCII
р U+0440 Cyrillic p (U+0070) Allowed looks like ASCII
ӏ U+04CF Cyrillic l (U+006C) Allowed looks like ASCII
е U+0435 Cyrillic e (U+0065) Allowed looks like ASCII
e U+0065 Latin itself Allowed ASCII
x U+0078 Latin itself Allowed ASCII
a U+0061 Latin itself Allowed ASCII
m U+006D Latin rn (U+0072 U+006E) Allowed ASCII
p U+0070 Latin itself Allowed ASCII
l U+006C Latin itself Allowed ASCII
e U+0065 Latin itself Allowed ASCII
Comparison with apple[.]example
Confusable: аррӏе[.]example and apple[.]example have the same UTS #39 skeleton, so they can look identical.
SKELETON OF THE INPUT
apple[.]exarnple
SKELETON OF APPLE[.]EXAMPLE
apple[.]exarnple解码为 аррӏе.example:五个字母全部是西里尔字母,读起来像 apple,因此该标签被标记为整体文字易混淆(whole-script confusable),每个字符也都被标出。Load example 还会在比较字段中填入 apple.example,两者的骨架(skeleton)相同。
检查内容
| 信号 | 其含义 |
|---|---|
| 同一标签内混用文字 | 同一标签内拉丁字母与西里尔字母或希腊字母混用,显示为红色。UTS #39 认可的混用(例如拉丁字母与日文)只作提示,除非某个字符看起来像 ASCII。 |
| 整体文字仿冒 | 每个字母都来自另一种字母表,但标签读起来像一个 ASCII 单词,例如用西里尔字母 аррӏе 冒充 apple。显示为红色。 |
| 仅重音不同 | 像 wället 这样的标签,如果忽略重音符号,读起来就是 wallet。这是黄色的 Check this 发现。 |
| UTS #39 原型 | Characters 表格显示每个字符冒充的是哪个 ASCII 字母或数字,并标注为 looks like ASCII、non-ASCII 或 ASCII。 |
| 限制级别 | 按照 UTS #39,从 ASCII-Only 到 Unrestricted。Minimally Restrictive 和 Unrestricted 以红色显示,因为它们允许风险最高的混用。 |
| 不可见字符与浏览器映射 | 如果浏览器会改写主机名,例如删除零宽字符或把全角字母转换为普通字母,你会看到黄色警告和一个 What the browser opens(浏览器实际打开的地址)字段。如果浏览器无法映射该主机名,其中的不可见字符会显示为红色。 |
| 异常的点号 | 表意文字句号或全角句号(U+3002、U+FF0E、U+FF61)在浏览器中可起到点号的作用,但可能绕过按纯文本比较的过滤器。 |
| 损坏的 Punycode | 无法正确解码的 xn-- 标签显示为红色。 |
| ASCII 伎俩 | 用 0 冒充 o、1 冒充 l、rn 冒充 m 或 vv 冒充 w 的纯 ASCII 名称会得到提示。请使用比较字段加以确认。 |
| 比较结果 | Same domain(同一域名)、Confusable (same skeleton)(易混淆,骨架相同)、Confusable once case is ignored(忽略大小写后易混淆)、Differs only by accents(仅重音不同)、1 or 2 edits away (likely typo-squat)(相差 1 或 2 处编辑,可能是拼写抢注)或 Not confusable(不易混淆)。 |
更多示例
拉丁名称中的西里尔字母 а,与 wallet.example 比较
wаllet.exampleLookalike risk:标签 “wаllet” 混用了多种文字(Latin + Cyrillic,限制级别:Minimally Restrictive);有 1 个字符看起来像 ASCII,读起来是 “wallet”。Punycode 形式为 xn--wllet-4ve[.]example。比较结果:Confusable,两者的骨架都是 wallet[.]exarnple。
用数字 1 代替 l,与 wallet.example 比较
wa1let.exampleLooks clean:仅含 ASCII 的主机名,没有同形字符,也没有混用文字。一条提示指出该标签含有 “1”(可能被读作 l)。比较结果:Confusable,因为两个名称的骨架都是 wallet[.]exarnple。
带重音的字母,与 wallet.example 比较
wället.exampleCheck this:如果忽略重音符号,标签 “wället” 读起来就是 “wallet”。Punycode 形式为 xn--wllet-gra[.]example,限制级别为 Single Script。比较结果:Differs only by accents。
常见问题解答
检查器测试什么?
每个标签用 RFC 3492 解码器从 Punycode 解码,每个字符都会根据 confusables.txt(Unicode 18.0)得到其 Unicode 文字系统和 UTS #39 原型,每个标签还会进行混用文字检查并得到 UTS #39 限制级别。所有字母读起来都像 ASCII 的标签会被标记为整体文字易混淆。
它会漏掉仿冒域名,或误报真实域名吗?
会。UTS #39 涵盖的是外观相似的字符,而不是拼写错误,因此字母被调换或缺失的情况只能通过比较字段中的编辑距离发现;rn 冒充 m 之类的 ASCII 伎俩会作为提示列出。合法的非拉丁字母名称(例如 .рф 下的某些西里尔字母域名)可能读起来像拉丁字母单词而被标记。
会通过网络发送任何数据吗?
不会。解码、文字系统检测和易混淆字符表都在本页面中运行;Punycode 形式来自你浏览器自身的 URL 解析器,不进行任何 DNS 查询。
各个限制级别是什么意思?
它们来自 Unicode UTS #39。ASCII-Only 只使用纯 ASCII。Single Script 只使用一种书写系统。Highly Restrictive 允许拉丁字母与中文、日文或韩文混用。Moderately Restrictive 允许拉丁字母与另一种常见文字混用,但西里尔字母和希腊字母除外。Minimally Restrictive 允许其他混用,而 Unrestricted 表示有字符超出了标识符配置范围(identifier profile)。
为什么工具说浏览器打开的是另一个名称?
浏览器会按 UTS #46 映射对主机名进行规范化。其中包括把全角字母转换为普通字母,以及删除零宽空格和软连字符等不可见字符。链接随后打开的是映射后的名称,而按原样书写的文本仍可能绕过比较原始字符串的过滤器。
一次可以检查多少个主机?
粘贴列表或消息,工具会从中挑出最多 50 个主机名,并跳过 IP 地址。文本最多分析 20,000 个字符,主机名以外的非 ASCII 单词也会被检查。