strip_tags
と wp_filter_nohtml_kses
の違いは何ですか。私はソースからwp_filter_nohtml_ksesを理解しようとしました、しかしそれはそれがコーデックスが言うことであってもそれがすべてのhtmlを取り除くより少し複雑な何かをするように見えます。私はkses関数が高価であると思うので、それがするすべてがhtmlを取り除くことであるならなぜstrip_tagsを使わないのか疑問に思います。
技術的な違いはちょっと明白です。 PHP oneは単一関数で、PHPコード内のロジックを使用します。 WP oneは、サードパーティのKSESライブラリに基づく一連の関数の1つです。
これら2つの機能の間に実際的な違いはありますか?重要な点は、strip_tags()
はユーティリティのために作られたのに対し、KSESはセキュリティのために作られたということです。
そのため、ほとんどの場合結果は近いかもしれませんが、KSESの実装は遅く、より徹底的になります。
HTML PurifierサイトでのHTMLフィルタの比較 に遭遇しました。以下はstrip_tags()
とkses
(オリジナルのWP以外のバージョン)の要約の抜粋です(両方に詳細があります)。 :
+------------+------------+---------+-------------+---------+------------+--------------------------+
| Library | Whitelist | Removal | Well-formed | Nesting | Attributes | XSS safe | Standards safe |
+------------+------------+---------+-------------+---------+------------+----------+----------------+
| strip_tags | Yes (user) | Buggy | No | No | No | No | No |
| kses | Yes (user) | Yes | No | No | Partial | Probably | No |
+------------+------------+---------+-------------+---------+------------+----------+----------------+