Tekrar post edildiğinde geçersiz CSRF Token Hatası
CSRF Açığı için token oluşturdum ancak oluşturduğum token formu f5'leyerek tekrar post ettiğimde hata veriyor geçersiz diye. Bunu nasıl çözebilirim ? Test etmek için yeniden form göndermek daha kolay olabiliyor.
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (!post('_token') or post('_token') != session('_token')) {
die('Geçersiz CSRF Token!');
}
}
$_SESSION['_token'] = bin2hex(random_bytes(20));
Kullandığım csrf doğrulaması bu.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
token atarken böyle yaparsan sorunun çözülür.
if(!isset($_POST['_token'])){
$_SESSION['_token'] = bin2hex(random_bytes(20));
}
Bir sayfada birden fazla token gerektiren işlem olduğunda nasıl bir yol izlemeliyiz peki ?
Örneğin benim sayfamda 2 adet modal var, 1- adres ekle / 2- adresi düzenle.
Bu modal içindeki formlarda _token değerini gönderiyoruz fakat bu sefer eşleşmiyor.