Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menyahkod Entiti Khas HTML Dengan Mudah Semasa Mencegah XSS?

Bagaimanakah Saya Boleh Menyahkod Entiti Khas HTML Dengan Mudah Semasa Mencegah XSS?

Barbara Streisand
Lepaskan: 2024-11-28 20:35:13
asal
785 orang telah melayarinya

How Can I Easily Decode HTML Special Entities While Preventing 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."
}
Salin selepas log masuk

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();
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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:&amp;nbsp;Bad attempt at XSS:<script>alert('new\nline?')</script><br>

Output:
Entity: Bad attempt at XSS:<script>alert('new\nline?')</script><br>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan