Cara menangani pemalsuan permintaan merentas tapak dalam pembangunan PHP
Pengenalan: Dengan perkembangan pesat Internet, isu keselamatan laman web telah menjadi semakin menonjol. Salah satunya ialah masalah Pemalsuan Permintaan Silang Tapak (CSRF). Artikel ini akan memperkenalkan cara mengendalikan serangan CSRF secara berkesan dalam pembangunan PHP dan menyediakan contoh kod khusus.
Kod sampel adalah seperti berikut:
// 在用户登录时生成Token,并存储在Session中 session_start(); if (!isset($_SESSION['csrf_token'])) { $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); } // 将Token添加到表单中 <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>"> // 在服务器端验证Token session_start(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (!hash_equals($_SESSION['csrf_token'], $_POST['csrf_token'])) { die('CSRF攻击检测'); } }
(2) Tetapkan atribut SameSite Cookie
Dalam pelayar terkini, anda boleh menetapkan SameSite atribut kuki untuk Mencegah serangan CSRF. Nilai atribut SameSite boleh ditetapkan kepada Strict, Lax, atau None. Ketat bermaksud bahawa kuki hanya boleh dihantar apabila permintaan dibuat daripada tapak yang sama, manakala Lax bermaksud kuki dibenarkan dihantar dalam keadaan tertentu (seperti mengklik pautan daripada tapak web luaran). Tiada bermakna bahawa kuki boleh dihantar dalam apa jua keadaan, yang boleh menyebabkan beberapa isu keselamatan.
Kod sampel adalah seperti berikut:
setcookie('session_id', session_id(), [ 'expires' => 0, 'path' => '/', 'domain' => 'your_domain.com', 'secure' => true, // 只能通过HTTPS发送 'httponly' => true, // 无法通过JavaScript访问 'samesite' => 'Strict' ]);
(2) Kemas kini tepat pada masanya rangka kerja belakang dan pustaka
Kerap mengemas kini versi rangka kerja belakang dan perpustakaan boleh mengekalkan keselamatan kod dan mengelakkan serangan terhadap kelemahan keselamatan yang diketahui Mereka yang menggunakannya.
(3) Kawalan kebenaran yang munasabah
Beri setiap pengguna kebenaran minimum untuk menghalang pengguna daripada beroperasi di luar kuasa mereka.
Kesimpulan: Pemalsuan permintaan merentas tapak (CSRF) ialah masalah keselamatan rangkaian biasa. Dengan menjana Token secara rawak dan menetapkan atribut Kuki SameSite, kami boleh menghalang serangan CSRF dengan berkesan. Pada masa yang sama, mengekalkan keselamatan kod dan kawalan kebenaran yang munasabah juga merupakan langkah penting untuk mencegah serangan CSRF.
Jumlah perkataan: 714 patah perkataan
Atas ialah kandungan terperinci Cara menangani pemalsuan permintaan merentas tapak dalam pembangunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!