in Yazılım

Laravel ajax isteklerine CSRF kontrolü ekleme

Ajax ile yapacağınız http isteklerine csrf kontrolü eklemek için izlemeniz gereken adımlardan bahsedeceğim.

Diyelim ki “/deneme” urlsi için bir route tanımladınız ve buraya ajax isteği yapacaksınız. Route tanımlarken ilgili yere istek yapıldığında csrf filtresinin çalışması gerektiğini belirtmeniz gerekiyor öncelikle. Csrf filtresi içerisinde de gelen isteğin header bilgisi içerisinde gelen X-CSRF-Token değerinin Sessiondaki token ile aynı olup olmadığını kontrol ederiz. İki token eşleşmiyorsa TokenMismatchException fırlatırız.

Ajax isteği yaptığınız view dosyasının header kısmına csrf bilgisini tutacağınız meta’yı ekleyeceksiniz.

Ajax çağırısını gerçekleştiren fonksiyondan önce de aşağıdaki kodun çalışmasını sağlamanız gerekiyor javascript kısmında

Böylece ajax istekleri yapılırken csrf bilgisnin de http header üzerinden gönderilmesini sağlamış olursunuz.

Csrf kontrolleri esnasında gelen token yanlış ise TokenMismatchException şeklinde bir exception fırlatıyoruz. Bununla ilgili hata yönetiminde kullanıcıya daha doğru hata mesajı ve alakalı http response kodu (400 – Bad Request) vermek amacıyla isterseniz global.php dosyanıza bununla alakalı kontrol ekleyebilirsiniz.