誰かがASCII文字に似ているUnicodeの文字を見つける簡単な方法を知っていますか。例として、「キリル文字の小さな文字DZE(ѕ)」があります。似たような文字を検索して置き換えたいのですが。同様に、私は人間が読める形式を意味します。見ても違いはわかりません。
2 に答える
他のコメンターが指摘したように、Unicode の正規化(「互換性のある文字」) は、公式の同等性を探しているのではなく、グリフ (文字の形状) の類似性を探しているため、ここでは役に立ちません。(ただし、リンクされた Unicode Technical Report は非常によく書かれているので、まだ読む価値があります。)
私があなただったら、自分で文字のリストを組み立てるという面倒な作業を省くために、同形異義語攻撃に関するリソースを検索します。視覚的に類似した文字に置き換えられます。セキュリティに関する別のUnicode Technical Reportには、この問題に関するセクションが含まれています。また、これが最も必要なものかもしれませんが、「紛らわしい」テーブルもあります。これは主に句読点を扱った別の記事で、その一部は ASCII であり、非 ASCII コード表に視覚的に類似した対応物があります。
私が望んでいるのは、あなたがそのような攻撃を構築するための質問をしていないことです.
Unicode データベースを参照してください: http://www.unicode.org/Public/UNIDATA/UnicodeData.txt。
各行は、Unicode 文字を記述します。次に例を示します。
1E9A;LATIN SMALL LETTER A WITH RIGHT HALF RING;Ll;0;L;<compat> 0061 02BE;;;;N;;;;;
その記号に類似した (互換性のある) 文字がある場合<compat>
は、エントリのフィールドに表示されます。この例では、0061
(ASCII a
) はLATIN SMALL LETTER A WITH RIGHT HALF RING
Unicode 文字と互換性があります。
あなたのキャラクターに関しては、エントリーは
0455;CYRILLIC SMALL LETTER DZE;Ll;0;L;;;;;N;;;0405;;0405
ご覧のとおり、これは互換文字を指定していません。