Untuk meningkatkan keselamatan Ajax, terdapat beberapa kaedah: Perlindungan CSRF: jana token dan hantar kepada pelanggan, tambahkannya ke bahagian pelayan dalam permintaan untuk pengesahan. Perlindungan XSS: Gunakan htmlspecialchars() untuk menapis input bagi mengelakkan suntikan skrip berniat jahat. Pengepala Kandungan-Keselamatan-Dasar: Hadkan pemuatan sumber berniat jahat dan nyatakan sumber dari mana skrip dan helaian gaya dibenarkan untuk dimuatkan. Sahkan input sisi pelayan: Sahkan input yang diterima daripada permintaan Ajax untuk menghalang penyerang daripada mengeksploitasi kelemahan input. Gunakan perpustakaan Ajax yang selamat: Manfaatkan modul perlindungan CSRF automatik yang disediakan oleh perpustakaan seperti jQuery.
PHP lwn. Ajax: Cara Meningkatkan Keselamatan Ajax
Keselamatan sangat penting apabila menggunakan Ajax dalam aplikasi web PHP. Jika langkah berjaga-jaga yang sewajarnya tidak diambil, panggilan Ajax boleh terdedah kepada serangan pemalsuan permintaan merentas tapak (CSRF) dan skrip silang tapak (XSS).
Dalam artikel ini, kami akan meneroka beberapa cara untuk meningkatkan keselamatan Ajax:
1 CSRF Protection
Serangan CSRF melibatkan memperdaya pengguna untuk membuat permintaan jahat kepada pelayan secara tidak sedar. Untuk mengelakkan serangan CSRF, anda boleh menggunakan kaedah berikut:
// 令牌生成 $token = bin2hex(random_bytes(32)); // 令牌存储 $_SESSION['csrf_token'] = $token; // 发送令牌到客户端 <input type="hidden" name="csrf_token" value="<?php echo $token; ?>"/>
// 向请求中添加令牌 $.ajax({ url: "submit.php", type: "POST", data: { csrf_token: "<?php echo $token; ?>", ... } });
2. Perlindungan XSS
Serangan XSS melibatkan suntikan skrip berniat jahat ke dalam laman web yang boleh dijalankan tanpa pengetahuan pengguna. Untuk mengelakkan serangan XSS, anda boleh menggunakan kaedah berikut:
// 过滤输入 $input = htmlspecialchars($input);
3 Gunakan pengepala Content-Security-Policy
Pengepala Content-Security-Policy (CSP) membolehkan anda menentukan skrip, helaian gaya dan sumber lain. bahawa penyemak imbas boleh memuatkan asal. Pengepala CSP boleh digunakan untuk mengehadkan pemuatan sumber berniat jahat:
// 设置 CSP 头 header('Content-Security-Policy: default-src \'self\';');
4. Mengesahkan input sisi pelayan
Ia juga penting untuk mengesahkan semua input yang diterima daripada permintaan Ajax di bahagian pelayan. Ini memastikan bahawa penyerang tidak boleh mengeksploitasi kelemahan dalam pengesahan input untuk melakukan tindakan berniat jahat.
// 验证输入 if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) { echo "无效的令牌"; exit; }
5 Gunakan perpustakaan Ajax yang selamat
Terdapat banyak perpustakaan PHP dan JavaScript yang boleh membantu melindungi panggilan Ajax. Sebagai contoh, jQuery mempunyai modul perlindungan CSRF terbina dalam yang secara automatik menambah token CSRF.
Contoh Praktikal
Andaikan kami mempunyai skrip PHP yang mengendalikan penyerahan borang oleh pengguna:
<?php // ... form processing code ... // 输出成功消息 echo "Submitted successfully!"; ?>
Kami boleh menggunakan JavaScript untuk menghantar permintaan Ajax untuk menyerahkan borang:
$.ajax({ url: "form.php", type: "POST", data: $("#form").serialize(), success: function(data) { $("#result").html(data); } });
Untuk melindungi contoh ini, kami boleh menambah langkah keselamatan berikut:
Kesimpulan
Dengan melaksanakan kaedah ini, anda boleh meningkatkan keselamatan panggilan Ajax dengan ketara dalam aplikasi web PHP anda. Dengan mengambil langkah berjaga-jaga yang sewajarnya, anda boleh membantu melindungi pengguna daripada serangan berniat jahat dan memastikan keselamatan dan integriti aplikasi anda.
Atas ialah kandungan terperinci PHP dan Ajax: Cara Meningkatkan Keselamatan Ajax. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!