اكتشاف الحروف المتشابهة في النطاقات وأسماء المستخدمين والرسائل
الحرف المتشابه هو محرف يبدو مطابقاً لمحرف آخر أكثر ألفة: فالحرف السيريلي а (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. فإذا غيّرتها NFKC، كما يحدث مع الحروف كاملة العرض والحروف المركبة مثل fi، تُعلَّم بوصفها صيغ توافق.
- تُحسب المواضع بنقاط ترميز Unicode بدءاً من 0. والكلمة التي تخلط الحروف اللاتينية بحروف سيريلية أو يونانية علامة تحذير قوية، لأن الكلمات الحقيقية نادراً ما تغيّر نظام الكتابة في منتصفها.
يعتبر التحويل أفضل جهد: تعتبر العناصر القابلة للارتباك المعينة والطي NFKC أمرًا حتميًا، ولكن لن يتم وضع علامة على بعض Unicode الشرعي.
النص الخاص بك
اللصق أو الكتابة - يتم تحديث النتائج أثناء الكتابة (يتم حذفها قليلاً للإدخال الطويل).
تم فحص 18 أحرف
4 مشبوهة
الحفاظ على Unicode القابل للقراءة
الأصلي (تم وضع علامة على الأحرف المشبوهة)
يتم وضع خط تحت الأحرف المشبوهة في العرض الأصلي ويتم تصنيفها على أنها "susp". بالإضافة إلى تسليط الضوء على اللون.
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. |