¿Es necesario usar esc_url con etiquetas de plantilla como get_permalink?

2

He estado leyendo que la desinfección de la salida de datos es importante en el desarrollo de temas / complementos para wordpress.

¿Es necesario usar funciones como esc_url con etiquetas de plantilla como get_permalink, o el saneamiento se encarga de la etiqueta de la plantilla?

Gracias

    
pregunta junkrig 06.08.2014 - 05:22

2 respuestas

3

la desinfección no tiene nada que ver con escapar, y escapar no es una cura para todo.

La función del escape es convertir una cadena a un HTML adecuado. La representación HTML correcta de una cadena podría depender del contexto y esa es la razón por la que tiene varias funciones de escape esc_html , esc_url y esc_attr .

A diferencia de escapar, los que tienen que preservar el significado de la desinfección de la cadena podrían eliminar o cambiar partes de la misma. Por ejemplo, un usuario en un rol de autor puede agregar iframes en la pestaña "prueba" del editor, pero se eliminarán del contenido cuando se guarde como parte de su eliminación.

La desinfección debe realizarse cuando no se realizará el escape. Por ejemplo, piense en un widget en el que ingresa el código de inserción de algún video de YouTube. Se supone que este código se debe obtener como está en el HTML generado por el sitio y el escape lo arruinará, por lo tanto, debe desinfectar el contenido antes de mostrarlo para asegurarse de que realmente contiene un código de inserción de YouTube válido y nada más.

    
respondido por el Mark Kaplun 06.08.2014 - 11:39
6

tenemos las funciones "get_permalink" y "the_permalink" en wordpress. Función "get_permalink" Devuelve el enlace permanente a una publicación o página para usar en PHP, y la función "the_permalink" Muestra la URL del enlace permanente a la publicación que se está procesando actualmente en The Loop! Si mira el archivo donde están definidas estas funciones, puede ver que la función get_permalink no se escapa, ¡pero the_permalink usa esc_url en su cuerpo! referencia: link-template.php

    
respondido por el M Ghanbari 06.08.2014 - 11:11

Lea otras preguntas en las etiquetas