Quand utiliser esc_html et quand utiliser sanitize_text_field?

11

Il semble qu'ils font presque le même type de travail. Donc...

Quand devrais-je utiliser à la esc_html()place de sanitize_text_field()?

Oui mon gars
la source

Réponses:

19

esc_html() est plus ou moins sans perte - il transforme simplement le balisage HTML en texte visible codé, de sorte qu'il ne soit pas rendu en tant que balisage par le navigateur.

Sémantiquement, c'est d' échappement , donc il est destiné à être utilisé pour sécuriser la sortie vers la page .

sanitize_text_field()mais supprime en fait tout le balisage HTML, ainsi que les espaces supplémentaires. Il ne reste que du texte brut.

Sémantiquement, il s'agit de désinfecter , il est donc destiné à être utilisé pour sécuriser les entrées enregistrées .

Rarst
la source
n'est-il pas préférable d'utiliser esc_html pour la sortie et l'enregistrement? Je n'afficherai aucun balisage de toute façon .. alors quand utiliserais-je sanitize_text_field ()?
yeahman
1
@yeahman "mieux" comment? Ils font des choses distinctement différentes. Jeter le balisage généralement utilisé pour les choses où le balisage n'est pas prévu, par exemple un formulaire qui prend un nom.
Rarst
Je veux dire qu'il stocke ce que l'utilisateur voit et a une entrée ... comme vous l'avez dit, c'est sans perte .. (par exemple, il entre "la balise <head> est l'endroit où vous devez inclure vos fichiers css", il s'attend à voir la <head> dans son poste). Pour un champ de nom, je contrôlerais l'entrée via la validation; n'est-il pas plus adapté?
yeahman
Je suis intéressé par les différences entre sanitize_text_field()etstrip_tags
myol
strip_tags est utilisé dans sanitize_text_field () si je ne me trompe pas
yeahman