0Pricing
Frontend Academy · Ders

CSRF: SameSite Çerezleri ve Belirteçleri

Cross-Site Request Forgery saldırılarının çerezlerden nasıl yararlandığını anlamayı, saldırıları önlemek için SameSite=Strict/Lax kullanmayı ve ek koruma için eşzamanlayıcı belirteçleri eklemeyi öğrenin.

CSRF: SameSite Çerezleri ve Belirteçleri, CoddyKit'te ücretsiz bir Frontend Academy dersidir. Bu, 4 dersinin 2. 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, Frontend Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Frontend Academy kursu toplamda 4 dersten oluşur.

CSRF Nedir

Siteler Arası İstek Sahteciliği: saldırgan, kimliği doğrulanmış bir kullanıcının tarayıcısını sitenize istek göndermesi için kandırır. Tarayıcı kullanıcının çerezlerini isteğe ekler — sunucu bunun kullanıcıdan gelen meşru bir istek olduğunu sanır.

Klasik CSRF Saldırısı

Kullanıcı bank.com sitesinde oturum açmıştır. evil.com sitesini ziyaret eder. evil.com, saldırganın hesap numarasını içeren gizli bir formu bank.com/transfer adresine gönderir. Tarayıcı bank.com oturum çerezini otomatik olarak gönderir. Sunucu parayı aktarır.

Güven Sorunu

CSRF, tarayıcıların kaynaklar arası isteklerde çerezleri otomatik olarak eklemesi nedeniyle çalışır. Ek bir koruma olmadan sunucu, isteğin kötü amaçlı bir siteden geldiğini anlayamaz.

SameSite Çerezleri — Modern Çözüm

SameSite çerez özniteliği, çerezlerin kaynaklar arası isteklerde ne zaman gönderileceğini denetler. Strict: kaynaklar arasında hiçbir zaman gönderilmez. Lax (Chrome'da varsayılan): yalnızca üst düzey GET gezinmesinde gönderilir. None: her zaman gönderilir (ayrıca Secure olmalıdır).

Set-Cookie: session=abc; HttpOnly; Secure; SameSite=Lax

SameSite=Lax Varsayılanı

SameSite belirtilmezse Chrome tüm çerezleri varsayılan olarak Lax yapar. Bu, çoğu CSRF saldırısını engeller — ancak yine de değeri açıkça belirtmelisiniz.

En Yüksek Güvenlik için SameSite=Strict

En hassas çerezler için (yönetici oturumları, banka işlemleri) Strict kullanın. Dezavantajı: kullanıcı başka bir sitedeki bağlantı üzerinden geldiğinde oturumu kapatılmış gibi görünür.

CSRF Belirteçleri (Eşitleme Deseni)

Daha eski tarayıcıları desteklemek veya ek güvenlik sağlamak için CSRF belirteçlerini kullanın. Sunucu rastgele bir belirteç oluşturur, bunu sayfaya yerleştirir ve durumu değiştiren her istekte gönderilmesini zorunlu kılar.

// Server embeds token in HTML or sets it as a non-HttpOnly cookie:
<meta name="csrf-token" content="a1b2c3...">

// Client reads token and sends in header:
const token = document.querySelector('meta[name=csrf-token]').content;
fetch('/transfer', {
  method: 'POST',
  headers: { 'X-CSRF-Token': token },
  body: JSON.stringify({ amount: 100 })
});

// Server verifies the X-CSRF-Token header matches the user's session

Çift Gönderimli Çerez

Sunucu bir CSRF çerezi ayarlar (JS'nin okuyabilmesi için HttpOnly olmamalıdır). İstemci bu çerezi okur ve değeri bir üstbilgide gönderir. Sunucu, çerezdeki değerin üstbilgideki değerle eşleştiğini denetler. Saldırgan kaynaklar arasında çerezi okuyamadığı için üstbilgiyi yineleyemez.

Neden Çalışır

Saldırganın evil.com sitesi, bank.com çerezlerini okuyamaz (Aynı Kaynak Politikası). Bu nedenle X-CSRF-Token üstbilgisini ayarlayamaz. İstek, sunucudaki belirteç denetiminden geçemez.

Taşıyıcı Belirteçleri Kullanan Tek Sayfalı Uygulamalarda CSRF

Kimlik doğrulamasını bellekte saklanan (çerez olmayan) Authorization: Bearer <jwt> ile yapıyorsanız CSRF geçerli değildir — tarayıcılar üstbilgileri otomatik olarak göndermez. Ödünleşim: JS tarafından erişilebilen belirteçler çalınabildiği için XSS'ye karşı daha savunmasız olursunuz.

Özel Üstbilgi Hilesi

Yalnızca özel bir üstbilgiyle JSON kabul eden API'lerde (ör. X-Requested-With) tarayıcılar bir ön denetim OPTIONS isteği gönderir — ön denetim sırasında çerezleri içermezler. Bu, basit form tabanlı CSRF'yi etkili bir şekilde engeller.

İdempotent ve Değişiklik Yapan Uç Noktalar

CSRF çoğunlukla durumu değiştiren istekleri etkiler (POST, PUT, DELETE). GET uç noktaları idempotent olmalıdır — yan etki oluşturmamalıdır — böylece sahte bir GET zarar veremez.

Hızlı Kontrol

Hangi SameSite çerez değeri, modern tarayıcılarda varsayılan olarak çerezlerin çoğu siteler arası istekte gönderilmesini önler?

Özet: CSRF'yi Önleme

Oturum çerezlerinde SameSite=Lax (veya Strict) ayarlayın — çoğu CSRF saldırısını engeller. HttpOnly + Secure ekleyin. Ek koruma için CSRF belirteçleri (eşitleme veya çift gönderimli çerez) kullanın. Üstbilgilerdeki taşıyıcı belirteçleri CSRF'yi önler ancak XSS riskini artırır. Özel üstbilgi hilesi ön denetimi zorunlu kılar. GET isteklerini idempotent yapın.

Sıkça Sorulan Sorular

“CSRF: SameSite Çerezleri ve Belirteçleri” dersi ücretsiz mi?

Evet — “CSRF: SameSite Çerezleri ve Belirteçleri” 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 Frontend Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Frontend Academy kursu toplamda 4 dersten oluşur.

“CSRF: SameSite Çerezleri ve Belirteçleri” dersinde ne öğreneceğim?

Cross-Site Request Forgery saldırılarının çerezlerden nasıl yararlandığını anlamayı, saldırıları önlemek için SameSite=Strict/Lax kullanmayı ve ek koruma için eşzamanlayıcı belirteçleri eklemeyi öğre… Frontend 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.

Frontend Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Frontend 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 2. dersidir.

“CSRF: SameSite Çerezleri ve Belirteçleri” 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 Frontend Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Frontend 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

  1. XSS Önleme: Çıktı Kodlama ve CSP
  2. CSRF: SameSite Çerezleri ve Belirteçleri
  3. Content Security Policy: nonce ve hash
  4. Ön Uçtan OAuth Akışları
← Frontend Academy Sayfasına Dön