2011-10-14 3 views
1

イムにstripslashesが破損UTFデータは、しかしImは必ず私は理由を理解することができないことを、私は報告を聞いたutf-8データのストライプスラッシュにお勧めの方法は?ほとんどがそこを除いて行われ、UTFに、私のサイトを、変換

にstripslashes()を使用するために必要レガシーコードです。 utfは、ASCII以外のすべての文字の上位ビットを設定します(ASCIIと互換性があります)ので、utfデータでも安全ですか?

utfデータでstripslashesを実行しようとすると、セキュリティ上の脆弱性が存在する可能性がありますか?無効なutfコードをスラッシュで使用していくつかのテストを実行しましたが、何も思い付きませんでした

+3

ストリップスラッシュを心配するのではなく、最初にこれらの不要なスラッシュを追加する方法を見つけてください。それがmagic_quotes_gpcなら、あなたは対処するより大きな問題があります。 –

+0

UTF-8はUS-ASCIIと互換性があります。 PHPソースにstripslashソースコードがないかどうか確認し、完全に拡張されていることを確かめます。次に、処理する入力データが実際に有効なUTF-8であることを確認します。 – hakre

答えて

5

UTF-8に問題はありません。実際、ほとんどのASCII関数はASCII互換であるため、UTF-8-safeです。

ただし、UTF-16と-32は、より高いコードポイントを表すためにASCII値(< 0x80)を持つ文字を使用する可能性があるため、問題があります。これは、文字列の長さと文字列の挿入と削除を心配する必要があります。 ASCIIスラッシュまたは引用符として誤って解釈される可能性があります。

例:UTF-16BEの"⁜!"(U + 205C U + 21)は、" \0!"(0はNULバイト)と解釈され、その後2番目の文字が削除され、文字列が破損します。

関連する問題

 関連する問題