Uso de las funciones esc_url, esc_html, esc_attr…

2 minutos de lectura

avatar de usuario
Pegatinas

¿Cuándo es definitivamente necesario o para una buena práctica usar funciones de escape?

como usar esc_url(); con:

get_template_directory_uri();
get_permalink();
get_author_posts_url();
get_edit_post_link();
wp_get_attachment_url();

Y esc_html(); con:

get_the_title();
get_the_author();
get_the_date();
get_search_query();

también creo esc_html(); y esc_attr(); son muy parecidas no? ¿Cuáles son las diferencias?

avatar de usuario
Pegatinas

Parte 1

Según la documentación – Validación, sanitización y escape por el equipo VIP de WP.

Principios rectores

  1. Nunca confíes en la entrada del usuario.
  2. Escapa lo más tarde posible.
  3. Escape todo de fuentes no confiables (como bases de datos y usuarios), terceros (como Twitter), etc.
  4. Nunca asumas nada.
  5. Nunca confíes en la entrada del usuario.
  6. El saneamiento está bien, pero la validación/rechazo es mejor.
  7. Nunca confíes en la entrada del usuario.

“Escapar no se trata solo de protegerse de los malos. Solo está haciendo que nuestro software sea duradero. Contra una mala entrada aleatoria, contra una entrada maliciosa o contra el mal tiempo”. -nótese bien

Parte 2

Según el artículo – Introducción a la seguridad front-end de WordPress: escapar de las cosas por Andy Adams de CSS-Tricks.

Función: esc_html

Usado para: Salida que no debería tener absolutamente ningún HTML en la salida.

Qué hace: Convierte caracteres especiales HTML (como <, >, &) en su entidad “escapada” (&lt;, &gt;, &amp;).

Función: esc_attr

Usado para: Salida que se usa en el contexto de un atributo HTML (piense en “título”, campos de “datos”, texto “alt”).

Qué hace: Exactamente lo mismo que esc_html. La única diferencia es que se aplican diferentes filtros de WordPress a cada función.

  • Esto plantea la pregunta: si esc_html y esc_attr hacer “exactamente lo mismo”, ¿por qué hay dos funciones distintas?

    –Jim Ratliff

    11 de junio de 2019 a las 15:41

  • @JimRatliff No sé, pero normalmente uso esc_attr para los atributos html como se sugiere.

    – Pegatinas

    2 de julio de 2019 a las 21:08

  • @JimRatliff Por defecto, no hay diferencia entre esc_html y esc_attrse usa el mismo código (solo tienen un filtro diferente sin usar): wordpress.stackexchange.com/questions/264698/…

    – bautismo

    20 de julio de 2019 a las 11:12

¿Ha sido útil esta solución?