jQuery ialah perpustakaan JavaScript yang sangat popular yang digunakan secara meluas dalam bidang pembangunan web. Apabila kita perlu memaparkan beberapa kod HTML pada halaman, untuk mengelakkan serangan suntikan, kod HTML mesti dilepaskan. Jadi, bagaimanakah jQuery boleh melepaskan kod HTML? Artikel ini akan memperkenalkannya secara terperinci.
1. Mengapa HTML melarikan diri diperlukan
Dalam aplikasi web, input data oleh pengguna selalunya mengandungi kod HTML Jika data ini dikeluarkan terus ke halaman, ia boleh menyebabkan serangan suntikan. Serangan suntikan HTML (HTML Injection) merujuk kepada penyerang yang memasukkan kod HTML ke dalam input pengguna atau pembolehubah lain aplikasi web melalui cara yang bijak, supaya ia ditafsir dan dilaksanakan dalam pelayar, dan mencapai tujuan serangan, seperti mencuri Maklumat sensitif pengguna atau data aplikasi yang diusik, dsb. Untuk mengelakkan serangan ini, kita perlu melarikan diri dari data input yang mengandungi kod HTML.
2. Kaedah melarikan diri HTML
Apabila melarikan diri dari HTML, kita boleh menggunakan dua kaedah yang disediakan oleh jQuery: text() dan html(). Perbezaan teras antara kedua-dua kaedah ialah kaedah text() akan melepaskan teg dalam kod HTML, manakala kaedah html() tidak akan melepaskan teg. Seterusnya, kami akan menerangkan kedua-dua kaedah ini secara terperinci.
Kaedah text() boleh melepaskan aksara khas yang terkandung dalam kod HTML ke dalam bentuk entitinya. Watak istimewa termasuk:
& (ampersand) " (double quote) ' (single quote) < (less-than) > (greater-than)
Contohnya, kita perlu melarikan diri dari kod HTML berikut:
<div>hello,world</div>
Kita boleh menggunakan kod berikut untuk melarikan diri:
var html = "<div>hello,world</div>"; var safeHtml = $("").text(html).html(); console.log(safeHtml); // "hello,world"Salin selepas log masukDalam contoh di atas, kami mula-mula menggunakan kaedah text() untuk melepaskan kod HTML, menetapkan kod HTML yang mengandungi aksara khas kepada elemen div, dan kemudian menggunakan kaedah html() untuk mendapatkan atribut innerHTML bagi elemen div . keluar, iaitu, pemprosesan melarikan diri kod HTML selesai. Akhirnya, kami mendapat rentetan tanpa label.
- Gunakan kaedah html() untuk HTML melarikan diri
Kaedah html() tidak terlepas daripada teg dalam kod HTML, ia hanya melarikan teg dalam kod Melarikan diri daripada watak istimewa. Oleh itu, jika kita perlu mengeluarkan kod yang mengandungi teg HTML, kita mesti menggunakan kaedah html() dan bukannya kaedah text().
Sebagai contoh, kita perlu mengeluarkan kod HTML berikut:
<div>hello,world</div>Salin selepas log masukSalin selepas log masukGunakan kaedah html() untuk memprosesnya seperti berikut:
var html = "<div>hello,world</div>"; var safeHtml = $("").html(html).html(); console.log(safeHtml); // "<div>hello,world</div>"Salin selepas log masukDalam contoh di atas, Kami menggunakan kaedah html() untuk mengeluarkan kod HTML Mula-mula, tetapkan kod kepada elemen div, dan kemudian keluarkan atribut innerHTML elemen div untuk mendapatkan rentetan yang mengandungi label.
3. Cara memilih untuk menggunakan kaedah text() atau html()
Untuk rentetan yang perlu dikeluarkan, jika ia mengandungi teg HTML, anda mesti menggunakan kaedah html() ; jika ia tidak mengandungi tag HTML, anda boleh menggunakan kaedah text() untuk output. Semasa pembangunan, untuk mengelakkan serangan suntikan HTML sebanyak mungkin, adalah disyorkan untuk menggunakan kaedah text() untuk pemprosesan HTML melarikan diri. Pada masa yang sama, demi kebolehbacaan kod, adalah disyorkan untuk merangkum operasi melarikan diri ke dalam fungsi dan menggunakannya apabila diperlukan.
Ringkasnya, untuk rentetan yang perlu dilepaskan HTML, anda boleh melarikan diri dengan mudah dengan menggunakan kaedah text() atau html() jQuery, mengelakkan isu keselamatan yang tidak perlu.
Atas ialah kandungan terperinci Bagaimana untuk melarikan diri dari html dengan jQuery. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!