Apakah check_plain () cukup untuk menampilkan kembali teks yang dimasukkan oleh pengguna di browser, atau haruskah saya tetap memfilter dengan filter_xss () ?
Apakah check_plain () cukup untuk menampilkan kembali teks yang dimasukkan oleh pengguna di browser, atau haruskah saya tetap memfilter dengan filter_xss () ?
Jawaban:
Saya membayangkan pertanyaannya adalah tentang menggunakan check_plain(filter_xss($string))
, atau filter_xss(check_plain($string))
.
check_plain()
dan filter_xss()
memiliki dua tujuan yang berbeda, dan sebaliknya:
check_plain()
menyandikan karakter khusus dalam string teks biasa yang kemudian ditampilkan sebagai HTML.filter_xss()
memfilter string HTML untuk mencegah kerentanan lintas-situs-scripting (XSS). Secara khusus tujuannya adalah:
Jika Anda menggunakan check_plain()
, string yang diteruskan ke fungsi seharusnya digunakan sebagai teks biasa; dalam hal demikian, filter_xss()
tidak perlu. Jika Anda menggunakan filter_xss()
, maka string yang diteruskan ke fungsi seharusnya HTML, dan check_plain()
tidak perlu.
Jika pertanyaannya adalah tentang menggunakan check_plain()
dan filter_xss()
pada bagian berbeda dari string yang sama, maka, seperti yang ditunjukkan greggles dalam komentarnya, Anda dapat menggunakan (misalnya) check_plain()
pada konten atribut tag, dan filter_xss()
pada seluruh tag HTML.