web-dev-qa-db-fra.com

Quelle est la différence entre strip_tags et wp_filter_nohtml_kses?

Quelle est la différence entre strip_tags et wp_filter_nohtml_kses . J'ai essayé d'imaginer wp_filter_nohtml_kses à partir de la source, mais il semble que cela fasse quelque chose d'un peu plus complexe que de supprimer tout le code HTML même si c'est ce que dit le codex. Je pense que les fonctions kses sont chères, alors je me demande pourquoi ne pas utiliser strip_tags si tout ce qu’il fait est de supprimer le code HTML.

3
byronyasgur

La différence technique est un peu évidente. PHP one est une fonction unique, utilisant la logique dans le code PHP. WP one est une famille de fonctions basée sur la bibliothèque KSES tierce.

Existe-t-il une différence pratique entre ces deux fonctions spécifiques? Je pense que le point important est que strip_tags() a été créé pour utilitaire , alors que KSES a été conçu pour sécurité .

Ainsi, alors que les résultats seraient probablement proches dans la plupart des cas, je m'attendrais à ce que la mise en œuvre de KSES soit plus lente et plus approfondie .


J'ai rencontré la comparaison des filtres HTML sur le site HTML Purifier , voici l'extrait de strip_tags() et kses (version originale, non-WP) récapitulatif (il y a plus il sur les deux):

+------------+------------+---------+-------------+---------+------------+--------------------------+
|  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             |
+------------+------------+---------+-------------+---------+------------+----------+----------------+
4
Rarst