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

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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.