v2.5.2
Giriş yap

Tekrar post edildiğinde geçersiz CSRF Token Hatası

fuatogur
763 defa görüntülendi

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.

Cevap yaz
Cevaplar (2)
makifgokce
1305 gün önce

token atarken böyle yaparsan sorunun çözülür.

if(!isset($_POST['_token'])){
    $_SESSION['_token'] = bin2hex(random_bytes(20));
}
ugurturkmen
1130 gün önce

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.