2011-08-29 28 views
8

これは入力がユーザーに印刷されるかどうかによって異なりますか?私の場合、私は入力をユーザーに返す必要があります(コメントとバイオ)。XSSを防ぐためにstriptags()とhtmlspecialchars()の両方を使用する必要がありますか?

ありがとうございました!

+0

あなたの主な関心事は、あなたが何をしているかにかかわらず、ユーザーの入力を消毒する必要があります...任意のデータベースクエリで入力を使用している場合、適切なエスケープアルゴリズムでエスケープする必要があります... –

答えて

18

htmlspecialchars()は、XSSを防止するのに十分です。

ストリップタグは、"または'のような特殊文字は削除しないので、strip_tags()を使用する場合は、htmlspecialchars()も使用する必要があります。

ユーザーのコメントが入力されたように表示されるようにするには、strip_tagsを使用しないでください.htmlspecialchars()のみを使用してください。

+0

downvoter彼がなぜ落選したのか説明してください。 – arnaud576875

+1

私はdownvotersのために話すことができませんが、あなたの最後の行は完全に間違っているようです。あなたは 'htmlspecialchars'を常に使用するべきです(ブラウザに出力するとき)**ユーザがコードを実行できるようにする場合は**を除いて** – jeroen

+0

@jeroen' Use htmlspecialchars( )のみ、 '。つまり、ユーザーのコメントを入力したように表示するには、strip_tagsを使用しないでください。 htmlspecialcharsのみを使用してください。 – arnaud576875

関連する問題