Skip to content

Glossary

CSRF

Siteler Arası İstek Sahteciliği

By Published Updated

CSRF (Siteler Arası İstek Sahteciliği), kötü niyetli bir sitenin kurbanın tarayıcısının, tarayıcının otomatik olarak eklediği çerezleri kullanarak hedef siteye karşı kimliği doğrulanmış istek göndermesine neden olduğu bir saldırıdır.

Klasik örnek: bank.example.com'a giriş yapmış durumdasınız. <img src="https://bank.example.com/transfer?to=attacker&amount=1000" /> içeren evil.example'ı ziyaret ediyorsunuz. Tarayıcınız banka oturum çerezlerinizle birlikte isteği gönderiyor. Banka, meşru kaynağı ayırt edemeden transferi gerçekleştiriyor.

Modern savunmalar:

  • SameSite çerez özelliği (modern tarayıcılarda varsayılan Lax) — çerezleri çapraz kaynak POST isteklerinden engeller.
  • CSRF tokenları — formlara dahil edilen, göndermede kontrol edilen sunucu tarafından verilen rastgele tokenlar. On yıllardır sektör standardı.
  • Origin/Referer başlık doğrulama — derinlemesine savunma.
  • Bearer-token kimlik doğrulama (başlıklar içinde, çerezler değil) — varsayılan olarak CSRF'ye karşı bağışık.

Modern çerçeveler (Django, Rails, Spring) CSRF korumasını varsayılan olarak etkin biçimde gönderir. 2020 varsayılan-Lax çerez değişikliği, kod değişikliği olmaksızın çoğu modern uygulama için CSRF'yi fiilen ortadan kaldırdı.

Çalışılmış örnek

2008'de birçok ev yönlendiricisindeki güvenlik açığı, klasik saldırıyı örnekler. Yönlendiricinin yönetici arayüzü http://192.168.1.1/'de yaşıyor, temel-kimlik doğrulama çerezleri kullanıyor ve DNS sunucusunu değiştirmek için POST /apply.cgi?dns=... gibi bir form sunuyordu. Saldırgan, o URL'yi hedefleyen görünmez otomatik gönderilen form içeren ayrı bir web sitesini kontrol ediyordu. Kötü niyetli sayfayı ziyaret eden oturum açmış bir kullanıcı, tarayıcısının kimlik doğrulama çerezleriyle birlikte formu yönlendiriciye sessizce POST etmesine ve DNS'nin saldırganınkiyle değiştirilmesine yol açıyordu. Yönlendicinin perspektifinden her istek meşru görünüyordu. Sektörün uzlaştığı düzeltme: forma oturum başına CSRF token ekleyin, gönderimde doğrulayın ve token eksik veya yanlışsa istekleri reddedin.

Ne zaman ve neden önemlidir

CSRF, bir uygulama tarayıcı tarafından otomatik olarak eklenen çerezler aracılığıyla kullanıcıların kimliğini doğruladığında önem taşır. Hata, "biz bir API'yiz, CSRF geçerli değil" varsaymaktır: API oturum çerezleri kullanıyorsa ve ön uçuşsuz basit JSON POST kabul ediyorsa, savunmasızdır. Cookie tabanlı bir uygulama için modern minimum: tüm kimlik doğrulama çerezlerine SameSite=Lax ayarlayın, her durum değiştiren istekte CSRF token doğrulayın ve JSON uç noktalarda uyumsuz Origin başlıkları olan istekleri reddedin. Yeni API'ler için Authorization başlığı aracılığıyla tamamen bearer-token kimlik doğrulamaya geçin; saldırı yüzeyi ortadan kalkar. Referans: OWASP — Siteler Arası İstek Sahteciliği.

Çift gönderme çerez örüntüsü: bir arka uç oturum başına durum saklayamadığında, CSRF token'ı bir çerez aracılığıyla verilebilir ve aynı zamanda özel bir istek başlığında bulunması gerekir. Tarayıcı çerezi her istekte otomatik ekler; ancak çapraz kaynak siteler değerini okuyarak başlığa kopyalayamaz — aynı kaynak ilkesi okumayı engeller. Sunucu ikisini karşılaştırır ve uyuşmazlıkları reddeder. Bu, çoğu modern tek sayfa uygulama çerçevesinin (Angular, Axios'un varsayılan yapılandırması) JSON API'lerinde CSRF savunması için kullandığı tekniktir. Referans: OWASP CSRF Önleme Kopya Kağıdı.

Frequently asked questions

CSRF nedir?
CSRF (Siteler Arası İstek Sahteciliği), kötü niyetli bir sayfanın kurbanın tarayıcısını başka bir siteye kimliği doğrulanmış istek göndermesi için kandırdığı bir saldırıdır. Kurban bank.com'a giriş yapmış durumdayken evil.com'u ziyaret ederse, evil.com kurbanın çerezlerini kullanarak bank.com'a bir para transferi isteği gönderebilir.
CSRF pratikte nasıl önlenir?
Standart savunma, her durum değiştiren formda gömülü rastgele, gizli, oturum başına değer olan bir CSRF tokenıdır. Sunucu, gönderimde token'ı doğrular. Token olmadan (evil.com aynı kaynak ilkesi nedeniyle okuyamaz) sahte istek reddedilir.
CSRF ile XSS arasındaki fark nedir?
XSS (siteler arası komut dosyası oluşturma), hedef sitedeki kurbanın kendi oturumuna kötü niyetli JavaScript enjekte eder. CSRF, farklı bir siteden kurbanın mevcut kimlik bilgilerini kullanarak istek sahte yapar. XSS saldırganın kod enjekte etmesini; CSRF ise kurbanın kötü niyetli bir sayfa ziyaret etmesini gerektirir.
SameSite çerez özelliği CSRF'yi önler mi?
Evet — oturum çerezlerine SameSite=Strict veya SameSite=Lax ayarlamak, tarayıcının bunları siteler arası isteklerde göndermesini engeller. SameSite=Lax (Chrome'daki modern varsayılan), siteler arası POST isteklerinde çerezleri engeller; ancak link tıklamak gibi güvenli üst düzey gezintilerde izin verir.

Related

Published May 15, 2026 · Last reviewed May 31, 2026