CSRF Nedir? Temel Kavramlar ve Çalışma Prensibi

CSRF (Cross‑Site Request Forgery), saldırganın bir kullanıcının oturum kimliğini (örneğin çerezlerini) kullanarak, hedef web uygulamasına istenmeyen bir isteği “gönderdiği” bir saldırı modelidir. Kullanıcı, hâlihazırda oturum açmış olduğu bir siteye, saldırganın kontrolündeki başka bir site üzerinden gizlice bir POST ya da GET isteği gönderir. Bu istek, kullanıcı tarafından onaylanmış gibi işlenir ve sonuçta banka havalesi, şifre değişikliği gibi kritik işlemler gerçekleşebilir.
CSRF’nin temelinde “güvenilen bir siteye gönderilen isteklerin otomatik olarak güvenilir kabul edilmesi” yatar. Tarayıcı, aynı alan adı (same‑origin) politikası dışında da çerezleri otomatik olarak ekler; bu yüzden saldırganın tek yapması, kullanıcıyı zararlı bir bağlantıya tıklamaya yönlendirmektir. Çoğu zaman, bu yönlendirme bir <img src="..."> etiketi, bir <script> veya bir otomatik form gönderimiyle yapılır.
Bu saldırı modelinin en büyük tehlikesi, kullanıcı farkında olmadan kritik bir işlem yapmasıdır. Örneğin, bir e‑ticaret sitesinde oturum açmış bir kullanıcı, aynı anda bir başka sekmede saldırganın hazırladığı “/transfer?amount=1000&to=attacker” URL’sini ziyaret ederse, sistem bu isteği geçerli bir işlem olarak kabul eder.
CSRF’nin Yaygın Kullanım Alanları ve Maliyeti
CSRF saldırıları özellikle aşağıdaki senaryolarda sıkça görülür:
- Finansal işlemler: Banka havalesi, kredi kartı ödeme onayı.
- Kullanıcı yönetimi: Şifre sıfırlama, e‑posta adresi değiştirme.
- İçerik yönetim sistemleri (CMS): Yeni bir blog gönderisi ekleme, site ayarlarını değiştirme.
- Bulut ve hosting hizmetleri: Sunucu başlatma/durdurma, VDS paket değiştirme gibi kritik API çağrıları.
Bir CSRF saldırısının maliyeti, sadece maddi kayıplarla sınırlı kalmaz; aynı zamanda marka itibarının zedelenmesi, yasal sorumluluk ve müşteri güveninin kaybı gibi uzun vadeli etkileri de vardır. Gartner’ın 2025 raporuna göre, ortalama bir veri ihlali maliyeti %40 artarken, CSRF gibi oturum temelli saldırılar da bu artışa doğrudan katkı sağlar.
Bu riskleri azaltmak için, sadece teknik önlemler yeterli değildir; aynı zamanda geliştirici ekiplerinin güvenlik farkındalığını artırmak ve kod incelemelerinde CSRF kontrollerini zorunlu kılmak gerekir.
CSRF Korunma Mekanizmaları: Temel ve İleri Düzey Yaklaşımlar
CSRF’ye karşı en etkili koruma stratejileri iki ana başlık altında toplanabilir: Token tabanlı koruma ve SameSite çerez politikası. Token tabanlı koruma, her istekle birlikte benzersiz bir “anti‑CSRF token” gönderilmesini zorunlu kılar. Bu token, sunucu tarafında oturumla ilişkilendirilir ve yalnızca geçerli bir token eşleşirse işlem kabul edilir.
Modern tarayıcılar ise SameSite özelliği sayesinde çerezlerin sadece aynı site içinde gönderilmesini sağlar. SameSite=Lax veya SameSite=Strict ayarı, çerezlerin üçüncü parti isteklerde gönderilmesini engelleyerek CSRF riskini büyük ölçüde azaltır. Ancak, eski tarayıcı desteği gerektiğinde token mekanizması hâlâ kritik bir katmandır.
Ek olarak, Referer ve Origin başlık kontrolü de bir katman daha ekler. Sunucu, gelen isteğin Referer veya Origin başlıklarını kontrol ederek, isteğin beklenen domain’den gelip gelmediğini doğrular. Bu yöntem tek başına yeterli olmasa da, çoklu koruma katmanları içinde etkili bir savunma sağlar.
Adım Adım CSRF Korunma Kılavuzu: Uygulama İçin Pratik Rehber

- Anti‑CSRF Token Oluşturma: Her oturum için rastgele bir token üretin ve bunu sunucu tarafında saklayın (örnek: PHP’de
bin2hex(random_bytes(32))). Formlar içinde gizli bir<input type="hidden">alanı olarak ekleyin. - Token Doğrulama: Sunucu, gelen POST/PUT isteklerinde token’ı kontrol eder. Token eşleşmezse 403 Forbidden hatası döndürün.
- SameSite Çerez Ayarı: Çerezleri
Set-Cookie: sessionid=...; SameSite=Strict; Secure; HttpOnlyşeklinde ayarlayın. Bu, çerezlerin üçüncü parti sitelerden gönderilmesini engeller. - Referer/Origin Kontrolü: İsteğin
Originbaşlığını kontrol edin. Beklenmeyen bir domain geldiğinde isteği reddedin. - CSP (Content Security Policy) Kullanımı:
script-srcveform-actiondirektifleriyle yalnızca güvenilir kaynaklardan gelen script ve form gönderimlerini izin verin. - HTTP Method Kısıtlamaları: Hassas işlemler için sadece POST/PUT gibi “yan etkili” metodları kullanın, GET isteklerini sadece veri çekmek için sınırlayın.
- Test ve İzleme: OWASP ZAP, Burp Suite gibi araçlarla CSRF testleri yapın ve WAF güvenlik duvarı üzerinden anormal istekleri loglayın.
Bu adımları tamamladığınızda, uygulamanızın CSRF riskini %90’ın üzerinde azaltmış olursunuz. Özellikle token yönetimini VDS sunucu paketleri üzerinde merkezi bir oturum yönetim servisiyle entegre etmek, ölçeklenebilirlik ve yönetim kolaylığı sağlar.
CSRF ve Diğer Web Güvenlik Açıkları: Karşılaştırmalı Tablo
| Açık | Hedef | Nasıl Çalışır | Koruma Yöntemi |
|---|---|---|---|
| CSRF | Oturum açmış kullanıcı | Üçüncü parti site üzerinden sahte istek gönderilir | Anti‑CSRF token, SameSite çerez, Referer kontrolü |
| XSS | Tarayıcı | Kötü amaçlı script enjekte edilerek çalıştırılır | Output encoding, CSP, input sanitization |
| SQL Injection | Veritabanı | Kullanıcı girdisi doğrudan sorguya eklenir | Prepared statements, ORM, input validation |
| Clickjacking | Kullanıcı arayüzü | Gizli bir iframe içinde tıklama yönlendirilir | X‑Frame-Options, CSP frame‑ancestors |
Tablodan da görüldüğü gibi, CSRF yalnızca oturum kimliğine dayanırken, XSS gibi diğer açıklar doğrudan istemci tarafını hedef alır. Bu yüzden her bir açık için farklı ama birbiriyle uyumlu koruma katmanları oluşturmak gerekir.
Gerçek Dünya Senaryosu: E‑ticaret Sitesinde CSRF Saldırısı ve Çözümü
2024 yılında bir e‑ticaret platformu, oturum açmış bir müşterinin çerezlerini çalmak yerine, ürün sepete ekleme isteğini sahte bir form aracılığıyla tetikleyerek sipariş oluşturmuştu. Saldırgan, “https://example.com/cart/add?product_id=123&quantity=5” URL’sini bir <img src> etiketiyle gizlemiş ve kullanıcı bu sayfayı ziyaret ettiğinde istek otomatik olarak gönderilmişti.
Bu olay sonrası platform, aşağıdaki adımları izleyerek sorunu çözmüş:
- Form tabanlı işlemlere anti‑CSRF token eklenmiş.
- Çerezlerde
SameSite=Strictayarı yapılmış, böylece üçüncü parti sitelerden gelen isteklerde çerez gönderilmemiş. - Ödeme ve sipariş API’leri sadece
POSTmetodunu kabul edecek şekilde yeniden yapılandırılmış. - WAF üzerinden “suspicious GET to /cart/add” gibi kalıplar tespit edilip engellenmiş.
Bu önlemler sayesinde, aynı saldırı bir daha gerçekleşmemiş ve platformun müşteri memnuniyeti %15 artmıştır. Benzer bir senaryoda, e-ticaret hosting paketinizin güvenlik özelliklerini kullanarak, otomatik saldırı tespit sistemleriyle anlık uyarı alabilirsiniz.
Sıkça Sorulan Sorular
CSRF saldırısı ile XSS arasındaki temel fark nedir?
CSRF, saldırganın kullanıcı oturumunu kullanarak istenmeyen bir isteği hedef sunucuya göndermesidir; XSS ise saldırganın kötü amaçlı script’i kullanıcı tarayıcısına enjekte etmesidir. CSRF, oturum kimliğine dayanırken XSS doğrudan istemci tarafını etkiler.
SameSite çerez özelliği eski tarayıcılarda desteklenmiyor mu?
Evet, bazı eski tarayıcılar SameSite özelliğini tanımaz. Bu durumda, token tabanlı koruma zorunlu hâle gelir. Modern tarayıcılara destek vermek için iki katmanlı (token + SameSite) yaklaşım önerilir.
Anti‑CSRF token’ı nasıl güvenli bir şekilde saklamalıyım?
Token’ı sunucu tarafında oturum verisiyle eşleştirerek saklamak en güvenli yöntemdir. Token’ı istemci tarafında sadece gizli form alanı olarak gönderin; JavaScript üzerinden erişime izin vermeyin (HttpOnly çerez kullanmayın).
CSRF koruması için sadece POST metodunu kullanmak yeterli mi?
POST, GET gibi “yan etkili olmayan” metodların kullanılmasını engeller, ancak yalnızca POST yeterli değildir. Token, SameSite ve Referer kontrolleri gibi ek önlemlerle birlikte kullanılmalıdır.
Sonuç: CSRF’den Korunmak İçin Hemen Atmanız Gereken Adımlar
CSRF, basit bir yönlendirme ile büyük zararlar yaratabilen bir saldırı tipidir; ancak doğru önlemlerle riski %90’ın üzerinde azaltabilirsiniz. İlk olarak, tüm form ve API isteklerine anti‑CSRF token ekleyin, çerezlerde SameSite=Strict ayarını aktif edin ve Referer/Origin başlıklarını kontrol edin. Ardından, WAF güvenlik duvarı ve CSP kurallarıyla çok katmanlı bir savunma oluşturun.
Bu adımları uyguladıktan sonra, fiziksel sunucu (dedicated server) gibi daha yüksek güvenlik gerektiren ortamları da rahatlıkla yönetebilir, güvenli bir WordPress hosting altyapısı kurabilirsiniz. Unutmayın, güvenlik bir defaya mahsus bir işlem değil, sürekli izleme ve güncelleme gerektiren bir süreçtir. Şimdi, uygulamanızda bu koruma mekanizmalarını devreye alarak, kullanıcılarınızı ve işinizi CSRF riskinden koruyun.