WPソースは、wp_filter_kses
とwp_filter_post_kses
が「スラッシュでエスケープされることが予想される」データに渡されることを示しています。
一方、wp_kses_data
には「エスケープされないことが期待される」データが渡され、wp_kses_post
にはwp_kses_dataのようなコードがあります。
未知の(スラッシュでエスケープされた)データをこれらの関数に渡すことはどれほど安全ですか?
最初のセットを2番目のセットよりも優先させることができますか、それとも2番目のセットをより安全に優先させますか。
それとも、スラッシュの観点からあなたのデータの状態を絶対に知る必要があるのでしょうか。
- 更新 -
データがエスケープされているかどうかわからない場合はwp_kses_data( stripslashes_deep( $data ) );
を使用し、最後にエスケープする必要がある場合はaddslashes()を使用してリターンを実行することができます。
コーデックスから:
wp_magic_quotesは、$ _GET、$ _POST、$ _COOKIE、$ _SERVER、および$ _REQUESTを、フックシステムのかなり早い時期、 'plugins_loaded'の直後、 'init'または 'wp_loaded'の前にエスケープするため、通常、wp_filter_ksesはwp_kses_dataよりも優先されます。
その場合、最初のセットが優先されます。 「スラッシュの除去は安全ではないよりも安全ですか?」という疑問があります。どちらも同じ許可済みHTMLを使用しています。ええ、それは絶対的な場合に依存します、しかし私はそれがそうではないより安全であると思います。
Ksesの基本的な使い方
$filtered = wp_kses($unfiltered, $allowed_html, $allowed_protocols);
WordPressのkses関数のすべてはそれからちょうどする
$filtered = wp_kses($unfiltered, $allowedtags);
そう:
$filtered = wp_kses_data($unfiltered);
$filtered = wp_filter_kses($unfiltered); // does the same, but will also slash escape the data
post
バリエーションは異なるタグのセットを使用します。非管理者による使用が許可されているもの。