Pregunta:
La fuente de WP muestra que wp_filter_kses
y wp_filter_post_kses
son datos que "se espera que se escapen con barras".
Por otro lado, a wp_kses_data
se le pasan datos que "se espera que no se wp_kses_post
" y wp_kses_post
tiene un código que se parece a wp_kses_data.
¿Qué tan seguro es pasar datos desconocidos (en términos de escapes con barras) a estas funciones?
¿Se puede preferir el primer juego al segundo o es más seguro preferir el segundo juego?
¿O se trata de un caso en el que es absolutamente necesario conocer el estado de sus datos en términos de recorte?
–actualizar–
Ahora supongo que si no sabe si los datos se han escapado, puede usar wp_kses_data( stripslashes_deep( $data ) );
y ejecute el retorno a través de addedlashes () si necesita escapar al final.
Respuesta:
Del códice:
wp_filter_kses generalmente debe preferirse a wp_kses_data porque wp_magic_quotes escapa $ _GET, $ _POST, $ _COOKIE, $ _SERVER y $ _REQUEST bastante temprano en el sistema de enlace, poco después de 'plugins_loaded' pero antes que 'init' o 'wp_loaded'.
Entonces se prefiere el primer conjunto. Más bien se trata de "¿es más seguro eliminar las barras diagonales que no?" Ambos usan el mismo HTML permitido. Bueno, sí, depende, en casos absolutos, pero supongo que es más seguro que no hacerlo.
Uso básico de kses:
$filtered = wp_kses($unfiltered, $allowed_html, $allowed_protocols);
Todas las funciones de wordpress kses, simplemente hazlas
$filtered = wp_kses($unfiltered, $allowedtags);
ENTONCES:
$filtered = wp_kses_data($unfiltered);
$filtered = wp_filter_kses($unfiltered); // does the same, but will also slash escape the data
las variaciones de la post
utilizan un conjunto diferente de etiquetas; aquellos permitidos para el uso por no administradores.