Crosssite_scripting の脆弱性について
1)ユーザー入力のすべてを検証してエスケープすることをお勧めしますか
2) strip_tags を十分に使用していますか?それに対する htmlpurifier の利点は何ですか?
はい、これは良い考えです。あなたがばかでないなら、私は言うまでもありません。データベースにデータを保存するときは、準備済みステートメントとバインドされたパラメーターを使用します。それを使用する場合(そうする必要があります)、データベースに入るデータを手動でエスケープする必要はありません。
データを表示するには、何を許可し、どこに出力するかによって異なります。HTML ページに表示され、HTML のレンダリングを許可したくない場合は、 を使用しますhtmlspecialchars($content, ENT_QUOTES)
。htmlentities
HTMLエンティティがあるすべての文字を変換するため、使用する必要はほとんどありません。つまり、ドキュメントが不要に大きくなります。一部の HTML を許可したい場合は、表示する前に (HTML purifier を使用して) フィルタリングする必要があります。
ストレージ メカニズムと出力メディアが異なると、異なるエスケープ/サニタイズ戦略が必要になることに注意してください。