A saída HTML deve ser passada por esc_html () AND wp_kses ()?


11

Estou confuso sobre os diferentes usos de esc_html()e wp_kses(). Entendo que esc_html()converte caracteres especiais em sua entidade HTML e que wp_kses()remova tags indesejadas (por exemplo, <script>), mas não tenho certeza em quais contextos eles devem ser usados ​​juntos ou separadamente.

Se eu executar algum HTML não confiável esc_html(), qualquer JavaScript será exibido em texto sem formatação, em vez de ser renderizado pelo navegador; portanto, é seguro nesse ponto, correto? O único motivo para executá-lo wp_kses()seria evitar exibir o script bruto?

Basicamente, esc_html()torna seguro e wp_kses()bonito. Isso está correto?

Respostas:


16

A regra geral, pelo menos adotada por Mark Jaquith , é higienizar a entrada, escapar à saída (o corolário dessa regra é higienizar cedo, escapar tarde ).

Portanto: use filtros de higienização (como a kses()família) ao armazenar dados não confiáveis ​​no banco de dados e use filtros de escape (ou seja, a esc_*()família) ao enviar dados não confiáveis ​​no modelo .


14

As funções kses devem ser usadas quando você deseja permitir que algum subconjunto de html esteja no resultado. Por exemplo, os comentários permitem um pouco de HTML para negrito, itálico, links e outros.

A função esc_html deve ser usada para escapar completamente do html. Nenhum HTML passará por isso sem ser convertido em algo que será interpretado como não HTML por um navegador.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.