it-swarm.com.de

Was ist der Unterschied zwischen strip_tags und wp_filter_nohtml_kses?

Was ist der Unterschied zwischen strip_tags und wp_filter_nohtml_kses . Ich habe versucht, wp_filter_nohtml_kses aus dem Quellcode zu ermitteln, aber es sieht so aus, als ob es ein bisschen komplexer ist, als alle HTML-Dateien zu entfernen, obwohl dies im Codex angegeben ist. Ich denke, die kses-Funktionen sind teuer, also frage ich mich, warum man strip_tags nicht benutzt, wenn alles, was es tut, das Entfernen des HTML ist.

3
byronyasgur

Technischer Unterschied ist ein bisschen offensichtlich. PHP ist eine einzelne Funktion, die Logik in PHP Code verwendet. WP one gehört zur Funktionsfamilie, die auf der KSES-Bibliothek eines Drittanbieters basiert.

Gibt es einen praktischen Unterschied zwischen diesen beiden spezifischen Funktionen? Ich denke, der wichtige Punkt ist, dass strip_tags() für utility gemacht wurde, während KSES für security gemacht wurde.

Während die Ergebnisse in den meisten Fällen wahrscheinlich nahe beieinander liegen, würde ich erwarten, dass die KSES-Implementierung langsamer und gründlicher verläuft.


Ich habe einen Vergleich von HTML-Filtern auf der HTML Purifier-Site festgestellt. Es folgt ein Auszug aus der Zusammenfassung von strip_tags() und kses (Originalversion, keine WP-Version) (es gibt noch mehr) dort auf beiden):

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