도메인, 사용자 이름, 메시지에서 호모글리프 탐지하기
호모글리프는 더 익숙한 다른 문자와 똑같이 보이는 문자입니다. 키릴 문자 а(U+0430)와 라틴 문자 a(U+0061)는 대부분의 글꼴에서 구별되지 않지만 서로 다른 코드 포인트입니다. 탐지기는 모든 문자를 검사해 닮은꼴 문자마다 위치, 코드 포인트, 유니코드 문자 체계, 흉내 내는 문자를 나열합니다.
예제 풀이
- 입력
- 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 | 혼동 문자 매핑표 |
- 읽을 수 있는 유니코드 유지
- paypal.com / Admin
작동 방식
- 모든 문자를 키릴 문자, 그리스 문자, 라틴 변형, 전각 문자 중 흔한 닮은꼴을 담은 내장 매핑표와 대조합니다. 일치하면 흉내 내는 ASCII 문자, 숫자 또는 문장 부호와 함께 표시됩니다.
- 매핑표에 없는 문자는 유니코드 NFKC 정규화를 거칩니다. 전각 문자나 fi 같은 합자처럼 NFKC로 바뀌는 문자는 호환 문자로 표시됩니다.
- 위치는 유니코드 코드 포인트 기준으로 0부터 셉니다. 한 단어에 라틴 문자와 키릴 문자나 그리스 문자가 섞여 있다면 강력한 경고 신호입니다. 정상적인 단어는 중간에 문자 체계를 바꾸는 일이 거의 없기 때문입니다.
변환은 최선의 노력입니다. 매핑된 혼란 항목 및 NFKC 접기는 결정적이지만 일부 합법적인 유니코드는 플래그가 지정되지 않습니다.
당신의 텍스트
붙여넣기 또는 입력 - 입력할 때 결과가 업데이트됩니다(긴 입력의 경우 약간 디바운싱됨).
18자 스캔됨
4개 의심 항목
읽을 수 있는 유니코드 유지
원본(의심스러운 문자가 표시됨)
원래 보기의 의심스러운 문자에는 밑줄이 그어져 있고 '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. |