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()?

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 .


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.