2011-01-26 17 views
0

私はマルチバイト文字とその使用方法を調べていましたが、マルチバイトごとにいくつの異なる識別子/パスが使用されているか調べていました。マルチバイト識別子リスト

例えば:&nbps;&#nbsp;U+0026%20

どのようにこのような多くの&&#u+%などのように異なる識別子があるのですか?

イムは、255文字以上の長さの単語を持っていて、おそらくマルチバイト(ハックの試行)の単語を持っていて、次に単語を分割できるかどうかを調べるために入力を探します。ハックの試み。

+0

検索、これらのほとんどを説明する必要があります。 &#nbsp;はどこにありますか?それは法的なHTMLエンティティではありません。たぶんあなたは<のようなものを意味するかもしれません。 – Merijn

+0

これは、どのエンジンが文字列を解析するかによってまったく異なります。私はこれのための一般的な "ハック検出"ソリューションを構築することは意味がないと思う。 –

+3

申し訳ありませんが、あなたの質問は不明です。 ' 'または '&#x0026'はHTML/XMLエンティティと呼ばれ、'%20'はURIエスケープシーケンスです。あなたは何をマルチバイトと呼びますか、何をしたいですか? – Benoit

答えて

0

%フォーマット - のURLに埋め込むためのURLエンコードされた値、例えば16進表記のUnicode文字、この場合&
&#...; - - 番号文字エンティティの文字エンティティ、この場合
U+0026非破断空間名前 - 20%は、スペース(ASCII 20)
&nbsp;あります小数(base10)&#38; = &
&#x...; - 進(基数16)で番号文字エンティティ:HTMLエンティティのため= & &#x26;

+0

のURLエンコードの識別子です。私はこれを知っていて、他のものは知りたいと思っています:) – Val

+0

これは私が知っているものです。名前付きエンティティはHTML仕様に含まれています(さらに多くのエンティティがあります)。 XMLは約6だけを直接サポートします。 –

0

homoglyphベースのなりすましを回避しようとしていますか? 識別子は、のユーザー名を意味しますか?

ユーザーはラテンアルファベットを使用する場合ははい、と、ちょうど許可した場合のみ、アスキー文字と数字:

$identifier = preg_replace('#[^A-Za-z0-9]+#', '', $identifier); 
+0

識別子%iは、 – Val