Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menyahkod Entiti Khas HTML Dengan Mudah Semasa Mencegah XSS?
Menyahkod Entiti Khas HTML dengan Mudah
Menyahkod entiti khas HTML boleh menjadi tugas yang mengelirukan. Pertimbangkan respons JSON berikut:
{ "message": "We're unable to complete your request at this time." }
Perhatikan apostrof yang dikodkan ('). Walaupun sebab di sebalik pengekodan ini mungkin tidak jelas, kebimbangan utama anda ialah menyahkodnya.
Pendekatan Invasif jQuery
Satu kaedah yang mungkin menggunakan jQuery ialah menukar rentetan HTML kepada div dan ekstrak kandungan teksnya:
function decodeHtml(html) { return $('<div>').html(html).text(); }
Walau bagaimanapun, pendekatan ini agak tidak konvensional.
Penyelesaian Pilihan: Memelihara Teg
Ujud penyelesaian yang lebih elegan yang turut mengekalkan tag:
function decodeHtml(html) { var txt = document.createElement("textarea"); txt.innerHTML = html; return txt.value; }
Pendekatan ini melibatkan penciptaan elemen textarea, menetapkan innerHTMLnya kepada rentetan HTML, dan kemudian mendapatkan semula nilainya, yang akan dinyahkodkan kandungan.
Contoh Praktikal dengan Pencegahan XSS
Pertimbangkan contoh berikut:
Input: Entity:&nbsp;Bad attempt at XSS:<script>alert('new\nline?')</script><br> Output: Entity: Bad attempt at XSS:<script>alert('new\nline?')</script><br>
Seperti yang anda lihat, entiti khas ( ) dinyahkod, manakala teg skrip dipelihara, memastikan keselamatan aplikasi anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahkod Entiti Khas HTML Dengan Mudah Semasa Mencegah XSS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!