Siteler Arası İstek Sahteciliği (CSRF)
CSRF saldırılarının kimliği doğrulanmış istekleri nasıl sahtelediğini ve CSRF belirteçleriyle SameSite çerezlerinin bunlara karşı nasıl savunma sağladığını öğrenin.
Siteler Arası İstek Sahteciliği (CSRF), CoddyKit'te ücretsiz bir Cyber Security Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cyber Security Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cyber Security Academy kursu toplamda 4 dersten oluşur.
CSRF Nedir?
Siteler Arası İstek Sahteciliği (CSRF), kimliği doğrulanmış bir kullanıcının tarayıcısını bir web uygulamasına yetkisiz istekler göndermesi için kandırır. Tarayıcı, isteklerle birlikte çerezleri otomatik olarak gönderdiğinden, sunucu ek önlemler olmadan meşru isteklerle sahte istekleri ayırt edemez.
CSRF Nasıl Çalışır
Senaryo:
- Kurban bank.com'da oturum açmıştır (tarayıcıda oturum çerezi bulunur)
- Kurban, şu içeriğe sahip saldırgan sayfasını ziyaret eder:
<img src="https://bank.com/transfer?to=attacker&amount=1000"> - Tarayıcı, bank.com çerezini ekleyerek GET isteğini gönderir
- Banka transferi gerçekleştirir
POST İstekleriyle CSRF
POST CSRF'si bir form gerektirir:
<form action="https://bank.com/transfer" method="POST" id="f">
<input name="to" value="attacker">
<input name="amount" value="1000">
</form>
<script>document.getElementById("f").submit()</script>CSRF Belirteçleri
Birincil savunma CSRF belirtecidir: formlara yerleştirilen rastgele, gizli ve oturum başına (veya istek başına) oluşturulan bir değer. Sunucu, durumu değiştiren her istekte belirteci doğrular. Başka bir alandaki saldırgan belirteci okuyamaz (aynı kaynak politikası).
SameSite Çerez Özniteliği
SameSite=Strict: çerez, kaynaklar arası isteklerle hiçbir şekilde gönderilmez. SameSite=Lax: çerez, güvenli üst düzey gezinmelerde (bağlantılarda) gönderilir; ancak diğer sitelerden gelen POST istekleriyle gönderilmez. Modern tarayıcılar varsayılan olarak Lax kullanır ve bu durum CSRF riskini önemli ölçüde azaltır.
Çift Gönderimli Çerez Deseni
Sunucu tarafında belirteç depolamaya alternatif olarak rastgele bir CSRF çerezi ayarlayın ve bunun istek parametresi olarak da gönderilmesini zorunlu kılın. Saldırgan çerezi okuyamadığından (aynı kaynak), form verilerinde onunla eşleşen bir değer oluşturamaz.
Özel İstek Başlıkları
AJAX istekleri için özel bir başlık (örneğin X-Requested-With: XMLHttpRequest) zorunlu kılmak CSRF koruması sağlar; çünkü tarayıcılar kaynaklar arası betiklerin rastgele başlıklar ayarlamasını engeller (CORS bunu uygular).
CSRF Belirteçleri Ne Zaman Yeterli Değildir
CSRF belirteçleri şu durumlarda başarısız olur:
- XSS varsa — saldırgan belirteci JavaScript aracılığıyla okuyabilir
- Belirteç URL'de sızdırılmışsa (Referer başlığında)
- Belirteç tahmin edilebilir veya yeniden kullanılıyorsa
- CORS, saldırganın kaynağına izin verecek şekilde yanlış yapılandırılmışsa
CSRF Sınaması
Sınama adımları:
- Durumu değiştiren istekleri belirleyin (POST, PUT, DELETE)
- CSRF belirtecini kaldırın veya değiştirip isteği yeniden gönderin
- Kaynaklar arası bir form gönderimi oluşturun ve başarılı olup olmadığını denetleyin
- Oturum çerezlerindeki SameSite özniteliğini doğrulayın
API'lerde CSRF
JSON kullanan REST API'leri şu koşullarda genellikle CSRF'den muaftır:
Content-Type: application/jsonzorunlu kılınır (HTML formları bunu ayarlayamaz)- Belirteç tabanlı kimlik doğrulama kullanılır (çerezler yerine Authorization başlığı)
Ancak çerez kabul eden API'ler yine de CSRF koruması uygulamalıdır.
Modern CSRF Görünümü
Chrome, Firefox ve Safari'de SameSite=Lax varsayılan olduğundan, geleneksel CSRF saldırılarının çoğu engellenir. Ancak alt alan adı saldırıları ve belirli gezinme biçimleri Lax korumasını aşabilir. Güçlü bir savunma için SameSite ile CSRF belirteçlerini birlikte kullanın.
Hızlı Kontrol: CSRF
Web uygulamalarında CSRF saldırılarına karşı birincil savunma nedir?
Ders Özeti
CSRF, kötü amaçlı sitelerden kimliği doğrulanmış istekler oluşturmak için tarayıcının çerezleri otomatik olarak eklemesinden yararlanır. Birincil savunma: sunucu tarafında doğrulanan CSRF belirteçleri. İkincil savunma: SameSite=Strict/Lax çerez özniteliği. Başlıklarda belirteç tabanlı kimlik doğrulaması kullanan API'ler (çerezler yerine) doğal olarak CSRF'ye karşı dirençlidir. Savunmaları birleştirin; XSS mevcutsa CSRF belirteçlerini aşabilir.
Sıkça Sorulan Sorular
“Siteler Arası İstek Sahteciliği (CSRF)” dersi ücretsiz mi?
Evet — “Siteler Arası İstek Sahteciliği (CSRF)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cyber Security Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cyber Security Academy kursu toplamda 4 dersten oluşur.
“Siteler Arası İstek Sahteciliği (CSRF)” dersinde ne öğreneceğim?
CSRF saldırılarının kimliği doğrulanmış istekleri nasıl sahtelediğini ve CSRF belirteçleriyle SameSite çerezlerinin bunlara karşı nasıl savunma sağladığını öğrenin. Cyber Security Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cyber Security Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cyber Security Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Siteler Arası İstek Sahteciliği (CSRF)” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cyber Security Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cyber Security Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- SQL Enjeksiyonu: Nasıl ve Neden Çalışır
- Siteler Arası Betik Çalıştırma (XSS)
- Siteler Arası İstek Sahteciliği (CSRF)
- Güvenlik Yanlış Yapılandırmaları ve Açık Hizmetler