ドメイン、ユーザー名、メッセージのホモグリフを検出する
ホモグリフとは、別のなじみのある文字とそっくりに見える文字です。キリル文字の а(U+0430)とラテン文字の a(U+0061)はほとんどのフォントで区別できませんが、別のコードポイントです。検出ツールはすべての文字を調べ、そっくり文字ごとに位置、コードポイント、Unicode の文字体系、まねている文字を一覧にします。
具体例
- 入力
- pаypаl.com / Αdmіn
- 検出された文字体系
- ラテン文字 (Latn), キリル文字 (Cyrl), ギリシャ文字 (Grek)
- 検出された文字数
- 4
| 位置 | 文字 | コードポイント | 文字体系 | 置換後 | ルール |
|---|---|---|---|---|---|
| 1 | а | U+0430 | キリル文字 | a | 紛らわしい文字の対応表 |
| 4 | а | U+0430 | キリル文字 | a | 紛らわしい文字の対応表 |
| 13 | Α | U+0391 | ギリシャ文字 | A | 紛らわしい文字の対応表 |
| 16 | і | U+0456 | キリル文字 | i | 紛らわしい文字の対応表 |
- 読み取り可能な Unicode を保持する
- paypal.com / Admin
仕組み
- 各文字を、キリル文字、ギリシャ文字、ラテン文字の変種、全角文字のよくあるそっくり文字を収録した対応表と照合します。一致した文字は、まねている ASCII の英字、数字、記号とともに表示されます。
- 対応表にない文字には Unicode の NFKC 正規化を適用します。全角英字や fi のような合字など、NFKC で変化する文字は互換文字として検出されます。
- 位置は Unicode のコードポイント単位で 0 から数えます。ラテン文字とキリル文字やギリシャ文字が一つの単語に混在している場合は強い警告サインです。正当な単語が途中で文字体系を変えることはほとんどないためです。
変換はベストエフォート型です。マッピングされた混同可能要素と NFKC フォールディングは決定的ですが、一部の正当な Unicode にはフラグが立てられません。
あなたのテキスト
貼り付けまたは入力 - 入力すると結果が更新されます (長い入力の場合は軽くデバウンスされます)。
18 文字をスキャン
4 件の疑わしい文字
読み取り可能な Unicode を保持する
オリジナル (疑わしい文字にマークが付いています)
元のビュー内の疑わしい文字には下線が引かれ、「疑わしい」というラベルが付けられます。ハイライトカラーに加えて。
psuspicious character аypsuspicious character аl.com / suspicious character Αdmsuspicious character іn
クリーンアップ後の出力
文字の分析
| インデックス (0 ベース) | 元の文字 | 置換後 | コードポイント | 理由 |
|---|---|---|---|---|
| 0 | p | p | U+0070 | Not flagged as a confusable or compatibility character. |
| 1 | а | a | U+0430 | Non-ASCII confusable mapped to a safer Latin ASCII equivalent. |
| 2 | y | y | U+0079 | Not flagged as a confusable or compatibility character. |
| 3 | p | p | U+0070 | Not flagged as a confusable or compatibility character. |
| 4 | а | a | U+0430 | Non-ASCII confusable mapped to a safer Latin ASCII equivalent. |
| 5 | l | l | U+006C | Not flagged as a confusable or compatibility character. |
| 6 | . | . | U+002E | Not flagged as a confusable or compatibility character. |
| 7 | c | c | U+0063 | Not flagged as a confusable or compatibility character. |
| 8 | o | o | U+006F | Not flagged as a confusable or compatibility character. |
| 9 | m | m | U+006D | Not flagged as a confusable or compatibility character. |
| 10 | U+0020 | Not flagged as a confusable or compatibility character. | ||
| 11 | / | / | U+002F | Not flagged as a confusable or compatibility character. |
| 12 | U+0020 | Not flagged as a confusable or compatibility character. | ||
| 13 | Α | A | U+0391 | Non-ASCII confusable mapped to a safer Latin ASCII equivalent. |
| 14 | d | d | U+0064 | Not flagged as a confusable or compatibility character. |
| 15 | m | m | U+006D | Not flagged as a confusable or compatibility character. |
| 16 | і | i | U+0456 | Non-ASCII confusable mapped to a safer Latin ASCII equivalent. |
| 17 | n | n | U+006E | Not flagged as a confusable or compatibility character. |