CSRF Saldırıları: Form Güvenliği ve Token Kullanımı
CSRF nedir?
CSRF, oturumu açık olan bir kullanıcıya istemediği bir işlemi yaptırmayı hedefleyen saldırı türüdür. Kullanıcı siteye giriş yapmışken başka bir sayfadaki zararlı form veya istek, kullanıcının tarayıcısı üzerinden gerçek uygulamaya gönderilebilir.
Hangi işlemler risklidir?
Silme, güncelleme, ayar değiştirme, kullanıcı banlama, şifre değiştirme, blog yayınlama ve dosya yükleme gibi durum değiştiren tüm işlemler CSRF koruması gerektirir. Sadece GET yerine POST kullanmak tek başına yeterli değildir.
Token nasıl çalışır?
Sunucu, oturum için rastgele bir token üretir ve form içine gizli alan olarak koyar. Form gönderildiğinde sunucu gelen token ile session’daki tokenı karşılaştırır. Eşleşme yoksa işlem reddedilir.
İyi uygulamalar
- Her kritik formda CSRF token bulundur.
- Tokenı tahmin edilemez rastgele değerle üret.
- Token kontrolünü merkezi yardımcı fonksiyonla yap.
- Admin panel işlemlerinde token kontrolünü atlama.
- AJAX isteklerinde tokenı header veya body ile gönder.
SameSite cookie etkisi
SameSite=Lax veya SameSite=Strict CSRF riskini azaltır; ancak token korumasının yerine geçmez. En sağlıklı yaklaşım cookie güvenliği ve token kontrolünü birlikte kullanmaktır.