HTML出力はesc_html()およびwp_kses()を介して渡される必要がありますか?


11

私は別の用途について混乱しているesc_html()wp_kses()esc_html()特殊文字をHTMLエンティティに変換し、wp_kses()不要なタグ(例:)を削除することを理解していますが、<script>それらをどのコンテキストで一緒に使用するか、個別に使用するかはわかりません。

を介して信頼できないHTMLを実行esc_html()すると、JavaScriptはブラウザによってレンダリングされるのではなくプレーンテキストで表示されるため、その時点で安全ですよね。それを実行する唯一の理由wp_kses()は、生のスクリプトが表示されないようにすることですか?

基本的に、esc_html()それを安全にし、wp_kses()きれいにします。あれは正しいですか?

回答:


16

一般的なルールは、少なくともMark Jaquithによって支持されているように入力時にサニタイズし出力時にエスケープします(このルールの結果として、早期にサニタイズし遅くにエスケープします)。

したがって:信頼できないデータをデータベースkses()格納する場合は、ファミリなどのサニタイズフィルターを使用し、テンプレートに信頼できないデータを出力するesc_*()場合は、エスケープフィルター(つまり、ファミリ)を使用します


14

結果にhtmlのサブセットを含めることを許可する場合は、kses関数を使用する必要があります。たとえば、コメントでは、ボールド、イタリック、リンクなどの一部のHTMLを許可しています。

esc_html関数は、htmlを完全にエスケープするために使用する必要があります。HTMLは、ブラウザによって非HTMLとして解釈されるものに変換されずに通過しません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.