Dengan pembangunan berterusan aplikasi Internet, pembangunan Web telah menjadi kemahiran yang digunakan secara meluas. Dalam pembangunan web, bahasa skrip bahagian pelayan PHP digemari oleh pembangun kerana sumber terbuka, mudah dipelajari dan digunakan serta fungsi yang berkuasa. Walau bagaimanapun, dalam aplikasi praktikal, sesetengah pembangun PHP kurang memahami keselamatan, mengakibatkan pelbagai risiko keselamatan pada tapak web. Antaranya, tidak menapis tag HTML adalah risiko keselamatan yang sangat biasa.
Teg HTML ialah asas untuk persembahan halaman web dan bahagian penting dalam pembangunan dan reka bentuk web. Walau bagaimanapun, teg HTML juga merupakan cara yang biasa digunakan oleh penyerang untuk menjalankan XSS (serangan skrip merentas tapak). Serangan XSS biasanya merujuk kepada penyerang yang menyuntik kod HTML atau JavaScript tertentu, menyebabkan pengguna melaksanakan skrip berniat jahat yang dibina oleh penyerang apabila mengakses halaman yang diserang, dengan itu mencapai tujuan serangan.
Sebagai bahasa skrip sebelah pelayan, PHP boleh melakukan pelbagai pemprosesan pada input data oleh pengguna, termasuk menapis teg HTML. Bagi sesetengah pembangun, mungkin demi kecekapan pembangunan, mereka tidak akan memproses input data oleh pengguna terlalu banyak, atau menapis tag HTML, dan mengeluarkan input kandungan oleh pengguna ke halaman yang lebih baik. Walaupun pendekatan ini meningkatkan kecekapan pembangunan, ia juga membawa lebih banyak risiko dan cabaran kepada tapak web.
Risiko dan cabaran yang disebabkan oleh tidak menapis teg HTML terutamanya ditunjukkan dalam aspek berikut:
Untuk mengelakkan risiko keselamatan teg HTML, pembangun perlu menapis data yang dimasukkan pengguna sebanyak mungkin. Penapisan ini termasuk bukan sahaja menapis teg HTML, tetapi juga menapis skrip lain yang mencurigakan, aksara khas, dsb. Kaedah penapisan teg HTML biasa termasuk kaedah senarai putih dan kaedah senarai hitam.
Kaedah senarai putih ialah cara menapis dengan mengekalkan beberapa teg HTML sah dan menolak semua teg yang tiada dalam senarai putih. Kaedah ini sesuai untuk tapak web yang mempunyai keperluan ketat pada kandungan input pengguna, seperti kewangan, kerajaan, dsb. Kaedah senarai putih boleh menghalang serangan XSS dengan berkesan dan mengurangkan kadar positif palsu.
Kaedah senarai hitam ialah cara menapis dengan mentakrifkan beberapa teg HTML yang tidak selamat dan menolak semua kandungan yang mengandungi teg tersebut. Kaedah ini sesuai untuk tapak web yang tidak mempunyai syarat ketat pada kandungan input pengguna, seperti berita, hiburan, dsb. Kaedah senarai hitam boleh menghalang beberapa serangan XSS mudah, tetapi keupayaan pertahanannya lemah terhadap serangan XSS yang kompleks.
Selain menapis teg HTML, terdapat kaedah lain untuk menghalang risiko keselamatan, seperti menggunakan atribut HTTPOnly untuk melarang JavaScript daripada mengendalikan kuki menggunakan CSP (Content-Security-Policy) untuk mengehadkan sumber yang dimuatkan oleh laman web tersebut.
Ringkasnya, tidak menapis teg HTML akan membawa risiko dan cabaran keselamatan yang tidak terukur kepada tapak web. Sebagai pembangun PHP, kami perlu memberi perhatian kepada isu keselamatan dalam pembangunan perisian, menapis dan memproses data yang dimasukkan pengguna sebanyak mungkin, dan meningkatkan keselamatan tapak web.
Atas ialah kandungan terperinci PHP tidak menapis tag HTML - membawa lebih banyak risiko dan cabaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!