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?
Pegatinas
Parte 1
Según la documentación – Validación, sanitización y escape por el equipo VIP de WP.
Principios rectores
- Nunca confíes en la entrada del usuario.
- Escapa lo más tarde posible.
- Escape todo de fuentes no confiables (como bases de datos y usuarios), terceros (como Twitter), etc.
- Nunca asumas nada.
- Nunca confíes en la entrada del usuario.
- El saneamiento está bien, pero la validación/rechazo es mejor.
- 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” (<
, >
, &
).
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
yesc_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
yesc_attr
se 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