Entiti HTML yang Tidak Terhindar dalam JavaScript: Panduan Komprehensif
Aplikasi web moden sering berinteraksi dengan perkhidmatan pihak ketiga melalui protokol seperti XML-RPC. Entiti boleh digunakan dalam XML-RPC untuk mewakili aksara khas, seperti entiti HTML. Jika anda menerima rentetan berkod HTML daripada perkhidmatan XML-RPC dan perlu memasukkannya ke dalam HTML yang dijana JavaScript anda, adalah penting untuk melepaskannya untuk memaparkan visual yang dimaksudkan.
Entiti HTML yang Tidak Terhindar
Jawapan yang diterima dalam utas terpaut mencadangkan fungsi untuk tidak melarikan diri entiti HTML:
function htmlDecode(str) { var doc = new DOMParser().parseFromString(str, "text/html"); return doc.documentElement.textContent; }
Pendekatan ini menggunakan DOMParser untuk mencipta serpihan dokumen daripada rentetan input, dengan berkesan tidak melarikan diri mana-mana HTML entiti di dalamnya.
Mencegah Kerentanan XSS
Walau bagaimanapun, seperti yang dinyatakan dalam jawapan yang diterima, menggunakan pendekatan DOMParser boleh memperkenalkan risiko keselamatan. Jika rentetan input mengandungi penanda HTML yang tidak dapat dilepaskan, ia boleh membawa kepada kerentanan Skrip Merentas Tapak (XSS).
Pendekatan Alternatif
Untuk mengurangkan risiko ini, anda boleh gunakan pendekatan alternatif, seperti:
Mendiagnosis Isu
Jika entiti yang tidak melarikan diri tidak berfungsi seperti yang diharapkan, anda boleh mengikuti langkah berikut untuk diagnosis:
Atas ialah kandungan terperinci Bagaimana untuk Menyahlepaskan Entiti HTML dengan Selamat dalam JavaScript: Menangani Kerentanan XSS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!