Apakah jenis serangan XSS contoh kod khusus diperlukan
Dengan perkembangan pesat Internet, aplikasi Web memainkan peranan yang semakin penting. Walau bagaimanapun, ancaman keselamatan web juga semakin meningkat, antaranya XSS (serangan skrip merentas tapak) merupakan salah satu jenis serangan yang paling biasa. Serangan XSS merujuk kepada menyuntik skrip berniat jahat ke dalam halaman web Apabila pengguna melawat halaman web, skrip akan dilaksanakan dalam pelayar pengguna, menyebabkan kebocoran maklumat atau serangan.
Serangan XSS boleh dibahagikan kepada tiga jenis: XSS tersimpan, XSS tercermin dan XSS berasaskan DOM. Tiga jenis akan diperkenalkan secara terperinci di bawah, dan contoh kod khusus akan disediakan untuk demonstrasi.
XSS yang disimpan bermakna skrip berniat jahat disimpan pada pelayan sasaran, dan apabila pengguna mengakses halaman yang mengandungi skrip, skrip akan dilaksanakan. Penyerang biasanya menyuntik melalui kotak input, papan mesej dan tempat lain di mana pengguna boleh memasukkan.
Berikut ialah contoh kod untuk XSS yang disimpan:
<script> var maliciousScript = "<script>alert('存储型XSS攻击!')</script>"; // 将恶意脚本存储到数据库中 saveToDatabase(maliciousScript); </script>
Kod di atas menyimpan skrip hasad dalam pangkalan data dan kemudiannya akan diambil daripada pangkalan data dan dilaksanakan apabila halaman dimuatkan.
XSS tercermin bermakna skrip hasad dihantar ke tapak web sasaran melalui URL Tapak web memasukkan skrip ke dalam halaman semasa memproses URL, dan kemudian mengembalikan halaman kepada pengguna. Apabila pengguna mengklik pada URL yang mengandungi skrip berniat jahat, skrip tersebut dilaksanakan dalam penyemak imbas pengguna.
Berikut ialah contoh kod untuk XSS reflektif:
<!-- 假设这是一个搜索页面 --> <input type="text" name="keyword" value="<?php echo $_GET['keyword']; ?>"> <!-- 将用户输入的值直接输出到页面上,存在XSS风险 --> <script> var keyword = "<?php echo $_GET['keyword']; ?>"; document.write("搜索结果:" + keyword); </script>
Dalam kod di atas, kata kunci carian pengguna dihantar ke pelayan melalui parameter URL, dan pelayan memasukkan kata kunci ke dalam HTML halaman dan mengembalikannya kepada pengguna. Jika kata kunci yang dimasukkan oleh pengguna secara berniat jahat mengandungi skrip, skrip akan dilaksanakan.
XSS berasaskan DOM ialah kaedah serangan XSS berdasarkan operasi DOM. Penyerang melaksanakan serangan dengan mengubah suai struktur DOM halaman, dan bukannya mengubah suai kandungan yang dikembalikan oleh pelayan seperti disimpan dan dicerminkan XSS.
Berikut ialah contoh kod XSS berasaskan DOM:
<!-- 假设这是一个计算器页面 --> <input type="text" id="number1" value="0"> <input type="text" id="number2" value="0"> <button onclick="calculate()">计算</button> <!-- 将用户输入的值直接输出到页面上,存在XSS风险 --> <script> function calculate() { var num1 = document.getElementById("number1").value; var num2 = document.getElementById("number2").value; var result = num1 + num2; // 用户输入可能包含恶意脚本 document.getElementById("result").innerText = "计算结果:" + result; } </script>
Dalam kod di atas, nombor yang dimasukkan oleh pengguna akan terus dikeluarkan ke halaman Jika nilai yang dimasukkan oleh pengguna secara jahat mengandungi skrip, maka skrip akan dilaksanakan.
Dalam pembangunan sebenar, untuk mengelakkan serangan XSS, kami boleh mengambil langkah berikut: pengesahan input dan penapisan input pengguna, pengekodan HTML output, dsb.
Ringkasnya, serangan XSS terbahagi kepada tiga jenis: XSS tersimpan, XSS tercermin dan XSS berasaskan DOM. Memahami jenis serangan ini dan pertahanan yang sepadan adalah penting untuk melindungi aplikasi web anda. Pada masa yang sama, pembangun harus sentiasa berwaspada untuk menemui dan membaiki potensi kelemahan XSS tepat pada masanya untuk memastikan keselamatan aplikasi web.
Atas ialah kandungan terperinci Pelbagai jenis serangan XSS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!