React ve API Kurulumlarında CSRF Koruması
React SPA ve SSR kurulumlarında SameSite çerezlerini, CSRF belirteçlerini ve çift gönderimli çerez kalıplarını uygulayın.
React ve API Kurulumlarında CSRF Koruması, CoddyKit'te ücretsiz bir React 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, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.
CSRF Nedir
Siteler Arası İstek Sahteciliği (CSRF), kötü amaçlı bir web sitesinin kullanıcının tarayıcısını kandırarak API'nize kimliği doğrulanmış bir istek göndermesini sağladığı bir saldırıdır. Tarayıcı, çerezleri isteklere otomatik olarak eklediği için sunucu, uygulamanızdan gelen meşru bir istek ile saldırganın sitesinden gelen sahte bir isteği ayırt edemez.
Çerezler CSRF'ye Neden Olanak Sağlar
Çerezler, CSRF güvenlik açığının temel nedenidir. Kullanıcı uygulamanızda oturum açtığında oturum çerezi tarayıcıda saklanır. Kullanıcı saldırganın sayfasını ziyaret ettiğinde saldırgan, API'nize bir form gönderimi veya getirme isteği başlatabilir; tarayıcı da oturum çerezini otomatik olarak ekleyerek kötü amaçlı isteğin kimliğini doğrular.
SameSite Çerez Özniteliği
SameSite çerez özniteliği, tarayıcılara siteler arası isteklere çerezleri ne zaman ekleyeceklerini bildirir. Üç değeri vardır: Lax (modern tarayıcılarda varsayılandır; siteler arası POST'u engeller, GET'e izin verir), Strict (GET yönlendirmeleri de dâhil olmak üzere tüm siteler arası istekleri engeller) ve None (siteler arası isteklere izin verir; HTTPS Secure bayrağı gerektirir).
SameSite=Lax ve Güvenli API'ler
SameSite=Lax, değişiklik işlemlerinde kullanılan siteler arası POST, PUT, DELETE ve PATCH isteklerini engeller. API'niz okumalar için yalnızca GET'i, tüm değişiklik işlemleri için de POST'u kullanıyorsa SameSite=Lax, modern tarayıcılarda SPA'ler için CSRF'yi etkili biçimde önler. Bu, günümüzde çoğu uygulamanın dayandığı temel azaltma önlemidir.
Çift Çerez Gönderme Deseni
Çift Çerez Gönderme deseni, sunucunun rastgele bir CSRF belirtecini HttpOnly olmayan bir çerezde ayarladığı bir CSRF azaltma yöntemidir. İstemci bu çerez değerini okur ve özel bir istek üst bilgisi olarak gönderir; örneğin X-CSRF-Token. Sunucu, üst bilgi değerinin çerez değeriyle eşleştiğini doğrular. Saldırgan farklı bir kaynaktan çerezi okuyamayacağı için doğru üst bilgiyi ayarlayamaz.
Senkronlaştırıcı Belirteç Deseni
Senkronlaştırıcı Belirteç Deseni, sunucuda her kullanıcı oturumu için benzersiz bir CSRF belirteci oluşturur. HTML formları için belirteç gizli bir alana yerleştirilir. SPA API çağrıları için belirteç bir uç nokta veya meta etiketi aracılığıyla sağlanır ve özel bir üst bilgide gönderilir. Sunucu, durumu değiştiren her istekte belirteci doğrular.
Authorization Üst Bilgisindeki JWT: Savunmasız Değildir
JWT'sini bellekte veya localStorage içinde saklayan ve JWT'yi Authorization: Bearer üst bilgisinde gönderen bir React SPA, klasik CSRF'ye karşı savunmasız değildir. CSRF saldırıları çerez tabanlı kimlik doğrulamadan yararlanır; saldırganın sayfası, CORS kısıtlamaları nedeniyle kaynaklar arası isteklere özel üst bilgiler ekleyemez ve bu nedenle Authorization üst bilgisini taklit edemez.
CSRF Azaltımı Olarak Özel İstek Üst Bilgileri
Basit kaynaklar arası isteklerde (form POST'u, görsel yükleme) özel üst bilgilere izin verilmez. Yalnızca CORS ön kontrolünden geçen istekler özel üst bilgiler içerebilir; ön kontrolden geçen istekler de sunucunun açık iznini gerektirir. Tüm değişiklik işlemleri için özel bir üst bilgi (örneğin X-Requested-With: XMLHttpRequest) gerektiren bir API, basit CSRF saldırılarına karşı doğal olarak korunur.
CORS ve CSRF Farklıdır
CORS, farklı kaynaklı bir isteğin yanıtını hangi kaynakların okuyabileceğini denetler. CSRF ise durum değiştiren istekleri hangi kaynakların gönderebileceğiyle ilgilidir. Kaynakları kısıtlayacak şekilde CORS yapılandırmak CSRF'yi önlemez — tarayıcı isteği ve çerezi yine gönderir; CORS yalnızca yanıtın JavaScript tarafından görülüp görülemeyeceğini denetler. Bir CSRF saldırısının yanıtı okuması gerekmez.
Oturum Çerezi İçin En İyi Uygulamalar
Oturum çerezlerini şunlarla yapılandırınız: HttpOnly: true (JavaScript'in çerezi okumasını önler ve XSS tabanlı belirteç hırsızlığını engeller), Secure: true (yalnızca HTTPS üzerinden gönderilir), SameSite: Lax veya Strict (CSRF'yi önler) ve uygun bir Max-Age ya da sona erme süresi. Bu dört öznitelik birlikte oturum yönetimini önemli ölçüde güçlendirir.
Next.js Uygulama Yönlendiricisinde CSRF
Next.js Uygulama Yönlendiricisi, POST istekleri olan Sunucu Eylemlerini kullanır. Next.js, Origin üst bilgisini ana bilgisayarla karşılaştırarak CSRF koruması uygular — beklenmeyen kaynaklardan gelen istekler reddedilir. Bu yerleşik denetim, SameSite=Lax oturum çerezleriyle birlikte Sunucu Eylemlerine dayalı veri değişiklikleri için güçlü bir CSRF koruması sağlar.
SameSite Çerez Özniteliği
Hangi SameSite çerez değeri, siteler arası POST isteklerini engellerken siteler arası GET yönlendirmelerine izin verir?
Ders Özeti
CSRF, çerez tabanlı kimlik doğrulamadan yararlanarak tarayıcıyı kimliği doğrulanmış siteler arası istekler göndermesi için kandırır. SameSite=Lax, modern tarayıcılar için temel savunmadır. Çift Gönderim Çerezi ve Eşzamanlayıcı Belirteç desenleri ek koruma sağlar. Yetkilendirme üst bilgilerinde JWT kullanan React SPA'ları doğası gereği CSRF'ye dirençlidir. Özel zorunlu üst bilgiler ve CORS ön denetimleri de CSRF'yi azaltır. Oturum çerezlerinde her zaman HttpOnly + Secure + SameSite özelliklerini birlikte kullanınız.
Sıkça Sorulan Sorular
“React ve API Kurulumlarında CSRF Koruması” dersi ücretsiz mi?
Evet — “React ve API Kurulumlarında CSRF Koruması” 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 React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.
“React ve API Kurulumlarında CSRF Koruması” dersinde ne öğreneceğim?
React SPA ve SSR kurulumlarında SameSite çerezlerini, CSRF belirteçlerini ve çift gönderimli çerez kalıplarını uygulayın. React 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.
React Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te React 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.
“React ve API Kurulumlarında CSRF Koruması” 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 React Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her React 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
- React'te XSS: dangerouslySetInnerHTML ve Üçüncü Taraf Betikleri
- React ve API Kurulumlarında CSRF Koruması
- React Uygulamaları için İçerik Güvenliği Politikası
- Gizli Bilgileri Yönetme ve Ortam Değişkenleri