2

言語に関係なく、ユーザー名を文字と数字のみで構成したいとします。

次の正規表現パーツでこれを達成できると思います

(?>\p{L}[\p{Mn}\p{Mc}]*) //match any letter, including those consisting of two code points

\p{Nd} //match any digit

現在、ユーザーが別のユーザーと同じように見えるユーザー名を使用して、別のユーザーになりすます可能性があるという問題があります (ホモグラフ攻撃)。admin と admin がその例です。

正規表現を使用して文字と混同可能性の両方である文字を簡単に除外することはできないと思いますが、正規表現のコンテキスト外ではどうですか。コンフューザブルの Unicode ID は、フィルタリングできる特定の範囲内にあるか、またはそのようなものですか?

4

2 に答える 2

0

Unicode 標準には、混乱しやすい文字のリストがhttp://www.unicode.org/Public/security/revision-02/confusables.txtに含まれています。

このリストは不完全であるという人もいれば、積極的すぎるという人もいますが、問題を一般的に解決するのがいかに難しいかを理解するために、このリストを見てください。

于 2014-10-07T00:03:44.913 に答える