Soalan: Bolehkah anda menghuraikan cara menggunakan teknik yang dinyatakan dalam artikel Wikipedia untuk menghalang CSRF dalam PHP, khususnya dalam Kohana rangka kerja?
Jawapan:
Untuk menghalang CSRF dalam PHP, anda boleh melaksanakan langkah berikut:
// On the page requesting to delete a record session_start(); $token = isset($_SESSION['delete_customer_token']) ? $_SESSION['delete_customer_token'] : ""; if (!$token) { // Generate and persist a new token $token = md5(uniqid()); $_SESSION['delete_customer_token']= $token; } session_write_close();
// When actually performing the deletion session_start(); // Validate the token $token = isset($_SESSION['delete_customer_token']) ? $_SESSION['delete_customer_token'] : ""; if ($token && $_POST['token'] === $token) { // Delete the record ... // Remove the token after successful deletion unset($_SESSION['delete_customer_token']); } else { // Log a potential CSRF attack } session_write_close();
Dalam Kohana, anda boleh mendapatkan semula URL perujuk menggunakan kaedah Request::referrer(). Untuk memastikan URL perujuk adalah sah, anda boleh membandingkannya dengan senarai domain yang dipercayai yang dibenarkan untuk merujuk ke tapak anda.
Dengan melaksanakan langkah-langkah ini, anda boleh membantu melindungi aplikasi PHP anda daripada serangan CSRF.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencegah Serangan CSRF dalam PHP, Khususnya Menggunakan Rangka Kerja Kohana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!