Détecter les homoglyphes dans les domaines, pseudos et messages
Un homoglyphe est un caractère qui ressemble à un autre, plus familier : le а cyrillique (U+0430) et le a latin (U+0061) sont identiques dans la plupart des polices, mais ce sont des points de code différents. Le détecteur examine chaque caractère et liste chaque sosie avec sa position, son point de code, son écriture Unicode et le caractère qu'il imite.
Exemple détaillé
- Entrée
- pаypаl.com / Αdmіn
- Écritures détectées
- latin (Latn), cyrillique (Cyrl), grec (Grek)
- Caractères signalés
- 4
| Position | Caractère | Point de code | Écriture | Remplacement | Règle |
|---|---|---|---|---|---|
| 1 | а | U+0430 | cyrillique | a | Table des confondables |
| 4 | а | U+0430 | cyrillique | a | Table des confondables |
| 13 | Α | U+0391 | grec | A | Table des confondables |
| 16 | і | U+0456 | cyrillique | i | Table des confondables |
- Conserver un Unicode lisible
- paypal.com / Admin
Fonctionnement
- Chaque caractère est comparé à une table intégrée de sosies courants en cyrillique, en grec, en variantes latines et en pleine chasse. Une correspondance est signalée avec la lettre, le chiffre ou le signe de ponctuation ASCII imité.
- Les caractères absents de la table passent par la normalisation Unicode NFKC. Si NFKC les modifie, comme pour les lettres pleine chasse et les ligatures telles que fi, ils sont signalés comme formes de compatibilité.
- Les positions comptent les points de code Unicode à partir de 0. Un mot qui mélange lettres latines et lettres cyrilliques ou grecques est un signal d'alerte fort, car un mot légitime change rarement d'écriture en son milieu.
La conversion s'effectue au mieux : les confusables mappés et le pliage NFKC sont déterministes, mais certains Unicode légitimes ne seront pas signalés.
Coller ou taper : les résultats sont mis à jour au fur et à mesure que vous tapez (légèrement rebondis pour une saisie longue).
Les caractères suspects dans la vue d'origine sont soulignés et étiquetés « susp ». en plus de mettre en évidence la couleur.
| Indice (basé sur 0) | Original | Remplacement | Point de code | Raison |
|---|---|---|---|---|
| 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. |