Saya mendapat umpan balik dari petugas keamanan dan dia menunjukkan bahwa saya harus menggunakan melarikan diri dari input pengguna dalam kode saya. Jadi saya telah melakukan penelitian dan menemukan fungsi pelarian.
Apa perbedaan di antara mereka? Kapan saya harus menggunakan esc_html()
dan kapan esc_attr()
? Dan kapan saya harus menggunakan fungsi-fungsi ini _e()
di akhir?
Jawaban:
esc_html()
lolos string sehingga tidak diuraikan sebagai HTML. Karakter seperti<
dikonversi menjadi<
, misalnya. Ini akan terlihat sama untuk pembaca, tetapi itu berarti bahwa jika nilai yang dihasilkan adalah<script>
maka tidak akan ditafsirkan oleh browser sebagai tag skrip yang sebenarnya.Gunakan fungsi ini setiap kali nilai yang dikeluarkan tidak boleh mengandung HTML.
esc_attr()
lolos string sehingga aman untuk digunakan dalam atribut HTML, seperticlass=""
misalnya. Ini mencegah nilai dari pelepasan atribut HTML. Misalnya, jika nilainya"><script>alert();</script>
dan Anda mencoba untuk mengeluarkannya dalam atribut HTML, itu akan menutup tag HTML saat ini dan membuka tag skrip. Ini tidak aman. Dengan keluar dari nilai, itu tidak akan dapat menutup atribut dan tag HTML dan menghasilkan HTML yang tidak aman.Gunakan fungsi ini saat mengeluarkan nilai di dalam atribut HTML.
esc_url()
lolos string untuk memastikan bahwa itu URL yang valid.Gunakan fungsi ini saat mengeluarkan nilai di dalam atribut
href=""
atausrc=""
.esc_textarea()
lolos nilai sehingga aman digunakan dalam suatu<textarea>
elemen. Dengan keluar dari nilai dengan fungsi ini mencegah nilai menjadi output di dalam<textarea<
dari menutup<textarea>
elemen dan menghasilkan HTML sendiri.Gunakan fungsi ini saat mengeluarkan nilai di dalam
<textarea>
elemen.esc_html()
danesc_attr()
juga memiliki versi yang berakhiran__()
,_e()
dan_x()
. Ini untuk menghasilkan string yang dapat diterjemahkan.WordPress memiliki fungsi,
__()
,_e()
dan_x()
, untuk menghasilkan teks yang dapat diterjemahkan.__()
mengembalikan string yang dapat diterjemahkan,_e()
menggemakan string yang dapat diterjemahkan, dan_x()
mengembalikan string yang dapat diterjemahkan dengan konteks tertentu. Anda mungkin pernah melihatnya sebelumnya.Karena Anda tidak dapat selalu memercayai file terjemahan berisi nilai-nilai aman, menggunakan fungsi-fungsi ini saat mengeluarkan string yang dapat diterjemahkan memastikan bahwa string yang dihasilkan tidak dapat menyebabkan masalah yang sama seperti yang dijelaskan di atas.
Gunakan fungsi-fungsi ini saat mengeluarkan string yang dapat diterjemahkan.
sumber
esc_html
danesc_attr
, kode yang sama digunakan (mereka hanya memiliki filter yang tidak digunakan berbeda): wordpress.stackexchange.com/questions/264698/…esc_html
akan digunakan di dalam html misalnya antara<p>
tagesc_attr
akan digunakan untuk keluar dari nilai atribut pada tag html seperti:berlaku
_e
sampai akhir adalah untuk menggunakannya dengan domain teks dan secara otomatis akan menggemakannya untuk Anda, misalnya:selain
_e
ada juga__
yang melakukan hal yang sama_e
tetapi tidak menggema sehingga Anda dapat menyimpannya dalam variabel.sumber
_e
bukan hanya untuk gaung, itu untuk lokalisasi. Jadi seharusnya hanya digunakan ketika string dilewatkan ke fungsi, dan harus menyertakan domain teks. Contoh terakhir Anda menyalahgunakannya.