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.