Tarayıcı güvenlik sınırları
CORS, authentication ve CSRF: sınırları birleştirme
Preflight başarılıyken yetki neden reddedilebilir?
Kavramı anlayalım
CORS browser’ın başka origin yanıtını script’e açma politikasını yönetir. curl veya başka backend istemcisine genel erişim kontrolü koymaz. Preflight OPTIONS, gerçek method ve alanlar için izin sorar; uygulamanın gerçek veri işlemi değildir. Başarılı preflight sonraki GET/POST’un authenticated veya authorized olduğunu kanıtlamaz.
Credential kullanan cross-origin isteklerde frontend credentials davranışı, cookie SameSite/Secure koşulları ve server origin/credentials yanıtı birlikte ele alınır. Credential’lı paylaşımda wildcard origin uygun değildir. Dinamik origin yansıtma sıkı allowlist olmadan risklidir. Güvenilmeyen origin’den gelen cookie taşıyan state-changing isteklere karşı CSRF denetimi ayrıca gerekir; CORS bütün CSRF türlerini tek başına durdurmaz.
Yanıt browser tarafından okunamadığında network panelinde gerçek sunucu sonucunu ve CORS alanlarını incele. 401’in CORS nedeniyle frontend’e görünmemesi teşhisi zorlaştırabilir; hata yanıtlarında da doğru policy uygulanır. OPTIONS’ı login redirect’e çevirmek preflight’ı bozabilir. CORS’ta verilen izin data owner’ına erişim hakkı değildir. Browser güvenlik sınırı, kimlik doğrulama ve resource policy ayrı test edilir.
Next.js browser isteklerinde CORS ve 401 sorunlarını teşhis ederken.
Origin allowlist’i kullanıcı veya kaynak authorization listesi sanmak.
Aynı konu. Üç farklı derinlik.
OPTIONS preflight allowed
GET actual request → 401Preflight kimliği doğrulamaz.
Bu sayfa dış sunuculara istek göndermez. HTTP mesajları temsili, HTTP/1.1 biçiminde okunabilir gösterimlerdir; HTTP/2 ve HTTP/3 wire formatı değildir. example.test ayrılmış öğretim alan adıdır. Komut ve JavaScript örneklerini yalnız kendi test ortamında uygula; gerçek token veya cookie yayımlama.
Önce kendin dene.
curl CORS alanı olmadan API’ye çağrı yapabiliyor. Bug mı?
Çözümü ve açıklamasını göster
No: CORS is enforced by browsers, not a universal firewall.Hayır. API kimlik ve yetki denetimini kendisi yapmalıdır.