Kapan menggunakan esc_html dan kapan menggunakan sanitize_text_field?

11

Tampaknya mereka melakukan jenis pekerjaan yang hampir sama. Begitu...

Ketika saya harus menggunakan esc_html()bukan sanitize_text_field()?

ya kawan
sumber

Jawaban:

19

esc_html() lebih atau kurang lossless - itu hanya mengubah markup HTML menjadi teks terlihat disandikan, sehingga tidak diterjemahkan sebagai markup oleh browser.

Semantik itu melarikan diri , jadi itu dimaksudkan untuk digunakan untuk membuat output ke halaman aman.

sanitize_text_field()Namun sebenarnya menghapus semua markup HTML, serta spasi tambahan. Itu tidak meninggalkan apa-apa selain teks biasa.

Semantik itu disanitasi , jadi itu dimaksudkan untuk digunakan agar input disimpan dengan aman.

Jarang
sumber
bukankah lebih baik menggunakan esc_html untuk output dan tabungan? Saya tidak akan menampilkan markup apa pun .. jadi kapan saya akan menggunakan sanitize_text_field ()?
yeahman
1
@yeahman "lebih baik" bagaimana? Mereka melakukan hal-hal yang jelas berbeda. Membuang markup biasanya digunakan untuk hal-hal di mana markup tidak diharapkan, misalnya bentuk yang mengambil nama.
Paling lambat
Maksud saya, ia menyimpan apa yang dilihat pengguna dan memiliki input ... seperti yang Anda katakan itu lossless .. (mis. Ia memasukkan "tag <head> adalah tempat Anda harus memasukkan file css Anda", ia mengharapkan untuk melihat <head> di posnya). Untuk bidang nama, saya akan mengontrol input melalui validasi; bukankah itu lebih cocok?
yeahman
Saya tertarik pada perbedaan antara sanitize_text_field()danstrip_tags
myol
strip_tags digunakan di sanitize_text_field () jika saya tidak salah
yeahman