Mengesahkan Parameter GET dan POST
Untuk mencegah serangan CSRF , adalah penting untuk mengesahkan input pengguna, bukan sahaja dalam kuki tetapi juga dalam parameter GET dan POST. Ini boleh dicapai dengan memadankan nilai yang diserahkan dengan nilai yang disimpan atau jenis data yang dijangkakan.
Menyemak Pengepala Perujuk HTTP
Pengepala Perujuk HTTP menunjukkan URL halaman yang membuat permintaan itu. Walaupun nilainya tidak selalu boleh dipercayai, ia boleh memberikan keselamatan tambahan dengan menyemak sama ada halaman rujukan sepadan dengan domain yang dipercayai.
Pelaksanaan dalam Rangka Kerja Kohana
Dalam rangka kerja Kohana, anda boleh mendapatkan semula pengepala Perujuk menggunakan:
$referrer = $this->request->headers['referer'];
Mengesahkan Sekali Token
Pendekatan yang lebih selamat melibatkan penggunaan token sekali yang dijana untuk setiap sesi dan dikaitkan dengan tindakan tertentu. Token ini hendaklah:
Contoh Pelaksanaan:
// On the confirmation page $token = md5(uniqid()); // Generate and store token // On the action page if (isset($_POST['token']) && $_POST['token'] === $token) { // Validate token and perform action ... } else { // CSRF attack detected }
Tambahan Petua
Atas ialah kandungan terperinci Bagaimanakah Pembangun PHP Dapat Mencegah Serangan Pemalsuan Permintaan Rentas Tapak (CSRF) dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!