Welches KSES sollte wann verwendet werden?

7

Die WP-Quelle zeigt dies wp_filter_ksesund es wp_filter_post_kseswerden Daten übergeben, von denen "erwartet wird, dass sie mit Schrägstrichen versehen werden".

Auf der anderen Seite werden wp_kses_dataDaten übergeben, von denen "erwartet wird, dass sie nicht wp_kses_postmaskiert werden" und deren Code wie wp_kses_data aussieht.

Wie sicher ist es, unbekannte Daten (in Bezug auf mit Schrägstrichen versehene Daten) an diese Funktionen zu übergeben?

Kann der erste Satz dem zweiten vorgezogen werden oder ist der zweite Satz sicherer?

Oder ist dies ein Fall, in dem Sie unbedingt den Zustand Ihrer Daten in Bezug auf Schrägstriche kennen müssen?

--aktualisieren--

Ich denke jetzt, wenn Sie nicht wissen, ob die Daten maskiert sind, können Sie wp_kses_data( stripslashes_deep( $data ) );die Rückgabe verwenden und durch addslashes () ausführen, wenn Sie am Ende maskiert werden müssen.

WraithKenny
quelle

Antworten:

3

Aus dem Kodex:

wp_filter_kses sollte im Allgemeinen wp_kses_data vorgezogen werden, da wp_magic_quotes $ _GET, $ _POST, $ _COOKIE, $ _SERVER und $ _REQUEST ziemlich früh im Hook-System kurz nach 'plugins_loaded', aber früher als 'init' oder 'wp_loaded' maskiert.

Der erste Satz wird dann bevorzugt. Eher eine Frage von "Ist das Entfernen von Schrägstrichen sicherer als nicht?" Beide verwenden denselben zulässigen HTML-Code. Nun ja, es kommt in absoluten Fällen darauf an, aber ich würde annehmen, dass es sicherer ist als nicht.

Grundlegende Verwendung von kses:

$filtered = wp_kses($unfiltered, $allowed_html, $allowed_protocols);

Alle WordPress-Kses-Funktionen funktionieren dann einfach

$filtered = wp_kses($unfiltered, $allowedtags);

DAMIT:

$filtered = wp_kses_data($unfiltered);
$filtered = wp_filter_kses($unfiltered); // does the same, but will also slash escape the data

Die postVariationen verwenden einen anderen Satz von Tags. diejenigen, die von Nicht-Administratoren verwendet werden dürfen.

two7s_clash
quelle
Ich habe diesen Teil tatsächlich im Codex geschrieben, der auf core.trac.wordpress.org/ticket/17089 basiert ... aber dann wissen Sie, dass die Daten maskiert sind (aufgrund von wp_magic_quotes). Was ich nicht weiß, ist, was zu tun ist, wenn Sie den Status der Daten nicht kennen ...
WraithKenny