web-dev-qa-db-fra.com

Quel KSES doit être utilisé et quand?

La source WP indique que wp_filter_kses et wp_filter_post_kses sont des données transmises qui "sont supposées être protégées par des barres obliques".

D'autre part, wp_kses_data reçoit des données "qui ne devraient pas être échappées" et wp_kses_post a un code qui ressemble à wp_kses_data.

Dans quelle mesure est-il sûr de transmettre des données inconnues (en termes d'échappements avec des barres obliques) à ces fonctions?

Peut-on préférer le premier ensemble au deuxième ou préférer le deuxième ensemble plus sûr?

Ou est-ce un cas où vous devez absolument connaître l'état de vos données en termes de barres obliques?

--mettre à jour--

Je suppose maintenant que si vous ne savez pas si les données sont échappées, vous pouvez utiliser wp_kses_data( stripslashes_deep( $data ) ); et exécuter le retour à l'aide de includeslashes () si vous avez besoin d'échapper à la fin.

6
WraithKenny

Du codex:

wp_filter_kses devrait généralement être préféré à wp_kses_data car wp_magic_quotes échappe assez tôt au système de hook, peu après 'plugins_loaded', peu de temps après 'plugins_loaded' mais plus tôt que 'init' ou 'wp_loaded'.

Le premier ensemble est alors préféré. Plus une question de, "est-ce que la suppression des barres obliques est plus sécurisée que pas?" Ils utilisent tous les deux le même HTML autorisé. Eh bien oui, cela dépend, dans des cas absolus, mais je suppose que c'est plus sûr que de ne pas le faire.

Utilisation de base de kses:

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

Toutes les fonctions kses wordpress alors faites juste

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

ALORS:

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

les variations post utilisent un ensemble différent de balises; ceux autorisés pour une utilisation par des non-administrateurs.

3
two7s_clash