ASP.NET ile CSRF Saldırılarını Önleme ve Güvenlik Rehberi
Günümüz web alanında güvenlik, şimdiden sonra bir seçim alanından çıkıp zorunluluk haline gelmiştir.


Günümüz web alanında güvenlik, şimdiden sonra bir seçim alanından çıkıp zorunluluk haline gelmiştir. Bu nedenle ASP.NET ve ASP.NET Core gibi oldukça güçlü framework’lerle projeler yapanlar için hain tehtitlerden bir tanesi de CSRF (Cross-Site Request Forgery), açıkçası Çapraz Site İstek Sahteciliği, kullanıcıların bilgisi olmaksızın onların yerine faaliyetler yapmasına sebep olabilir.
Bu makalede, Google standartlarında bir güvenliğe sahip olmak için ASP tabanlı projelerinizde uygulamanız gereken en güncel savunma mekanizmalarını inceleyeceğiz.
CSRF Saldırısı Nedir? Basit Bir Senaryo
CSRF saldırısı, bir saldırganın kurbanın tarayıcısındaki oturum (session) bilgilerini kullanarak, kullanıcının bilgisi dışında hedef web sitesine sahte istekler göndermesidir. Kullanıcı güvenli bir banka sitesinde oturum açmışken, başka bir sekmede kötü niyetli bir linke tıkladığında, arka planda banka hesabından para transferi yapılması bu saldırının en klasik örneğidir.
ASP.NET’te CSRF Önleme Yöntemleri
1. Anti-Forgery Tokens (Anti-Sahtecilik Tokenları)
ASP.NET’in en güçlü savunma hattı ValidateAntiForgeryToken özelliğidir. Bu mekanizma, sunucu tarafından üretilen benzersiz bir token’ın hem istemciye (cookie olarak) hem de forma (hidden field olarak) gönderilmesi ve her POST isteğinde bu ikisinin eşleşmesinin kontrol edilmesi mantığına dayanır.
Nasıl Uygulanır? Razor sayfalarınızda formun içine şu ifadeyi eklemeniz yeterlidir:
@Html.AntiForgeryToken()
Controller tarafında ise:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AyarlarıGuncelle(AyarlarModel model) { ... }
2. SameSite Cookie Özniteliği
Google Chrome ve diğer modern tarayıcılar tarafından desteklenen SameSite özelliği, cookie’lerin üçüncü taraf sitelerden gönderilip gönderilmeyeceğini belirler.
| Ayar Değeri | Açıklama | Güvenlik Seviyesi |
|---|---|---|
| Strict | Cookie sadece kaynak site üzerinden gönderilir. | En Yüksek |
| Lax | Güvenli navigasyonlarda (GET) cookie gönderimine izin verir. | Orta (Varsayılan) |
| None | Her türlü çapraz istekte cookie gönderilir. (Önerilmez) | Düşük |
Güvenlik Protokolleri Karşılaştırma Tablosu
Aşağıdaki tablo, CSRF saldırılarına karşı hangi yöntemin ne kadar etkili olduğunu özetlemektedir:
| Korunma Yöntemi | Zorluk Derecesi | Etki Alanı | Önerilen Durum |
|---|---|---|---|
| Anti-Forgery Tokens | Düşük | Formlar ve POST istekleri | Tüm form işlemlerinde |
| SameSite Cookies | Çok Düşük | Tüm oturum yönetimi | Genel site güvenliği için |
| Custom Auth Headers | Orta | AJAX ve API istekleri | Modern SPA uygulamaları |
| Double Submit Cookie | Orta | Stateless (Durumsuz) uygulamalar | Session tutulmayan yapılar |
AJAX İsteklerinde CSRF Koruması
Modern web siteleri yoğun şekilde AJAX kullanır. ASP.NET Core üzerinde bir JavaScript isteğine token eklemek için genellikle HTTP headerları kullanılır.
İpucu: X-XSRF-TOKEN başlığını kullanarak sunucuya token gönderdiğinizden emin olun. Bu, özellikle Angular, React veya Vue.js gibi frameworkler ile çalışırken hayati önem taşır.
SEO ve Google Güvenlik Standartları İçin Tavsiyeler
Google, güvenli web sitelerini arama sonuçlarında ödüllendirir. CSRF koruması doğrudan bir sıralama faktörü olmasa da, kullanıcı güvenliği ve site otoritesi için kritik bir yapı taşıdır.
- HTTPS Kullanımı: SSL sertifikası olmayan bir sitede CSRF koruması eksik kalacaktır. Let’s Encrypt gibi platformlardan ücretsiz SSL edinebilirsiniz.
- HSTS Protokolü: HTTP Strict Transport Security kullanarak bağlantılarınızı zorunlu olarak şifreleyin.
- OWASP Standartları: Güvenlik açıklarını takip etmek için OWASP Top 10 listesini düzenli kontrol edin.
Sonuç: Hiçbir Sistem %100 Güvenli Değildir Ama…
Siber saldırganlar her zaman bir açık arar. Ancak yukarıda belirttiğimiz Anti-Forgery Token ve SameSite Cookie politikalarını uygulayarak, ASP.NET tabanlı sitenizi CSRF saldırılarına karşı %99 oranında korunaklı hale getirebilirsiniz. Unutmayın, güvenlik bir varış noktası değil, bir yolculuktur.
Daha fazla bilgi için kaynaklar:
Bu makale siber güvenlik uzmanları ve web geliştiricileri için güncel standartlar göz önünde bulundurularak hazırlanmıştır.




