Quando usar esc_html e quando usar sanitize_text_field?

11

Parece que eles fazem quase o mesmo tipo de trabalho. Assim...

Quando devo usar em esc_html()vez de sanitize_text_field()?

sim cara
fonte

Respostas:

19

esc_html() é mais ou menos sem perdas - apenas transforma a marcação HTML em texto visível codificado, para que não seja renderizada como marcação pelo navegador.

Semanticamente, é uma fuga , portanto deve ser usado para tornar a saída da página segura.

sanitize_text_field()no entanto, na verdade, remove toda a marcação HTML, além de espaço em branco extra. Não deixa nada além de texto simples.

Semanticamente é higienizado , portanto, deve ser usado para tornar a entrada salva .

Rarst
fonte
não é melhor usar esc_html para saída e salvamento? Eu não exibirei nenhuma marcação de qualquer maneira .. então quando eu usaria sanitize_text_field ()?
yeahman
1
@yeahman "melhor" como? Eles estão fazendo coisas distintamente diferentes. Descartar a marcação geralmente usada para itens em que a marcação não é esperada, por exemplo, um formulário que leva um nome.
Rarst
Quero dizer, ele armazena o que o usuário vê e tem entrada ... como você disse que é sem perdas .. (por exemplo, ele insere "a tag <head> é onde você deve incluir seus arquivos css", ele espera ver a <head> em seu post). Para um campo de nome, eu controlaria a entrada via validação; não é mais adequado?
yeahman
Estou interessado nas diferenças entre sanitize_text_field()estrip_tags
myol
strip_tags é usado em sanitize_text_field () se não estou enganado
yeahman