Authentication · Kimlik doğrulama
Cookie, Bearer ve BFF: browser token mimarisi
XSS, CSRF ve oturum taşıma tercihlerini dengeli değerlendir.
Kavramı anlayalım
Cookie tarayıcı tarafından uygun domain, path ve diğer kurallara göre otomatik gönderilir. HttpOnly JavaScript okumasını sınırlar; Secure HTTPS taşımasını ister; SameSite cross-site gönderime etki eder. Bunların hiçbiri tek başına “artık XSS veya CSRF yok” garantisi değildir. Kötü niyetli script okunamayan cookie ile bile kullanıcının adına aynı origin’e işlem yaptırabilir.
Authorization: Bearer header genellikle uygulama kodu tarafından eklenir. Token’a sahip olan onu kullanabilir; kısa ömür, audience, scope ve güvenli taşıma gerekir. localStorage’a koymak script erişimine açar; bellekte tutmak ise XSS riskini sıfırlamaz ve sayfa yenileme lifecycle’ı gerektirir. Query token’ları URL sızıntısı üretir. CORS ve credentials davranışı browser policy’sidir; token doğrulama yerine geçmez.
Backend for Frontend modelinde browser ile BFF arasında session cookie, BFF ile dış API arasında token bulunabilir. Bu, token’ın browser’a açılmasını azaltabilir ama CSRF koruması, session yönetimi ve proxy hedef kısıtları hâlâ gerekir. Her sisteme aynı mimariyi dayatma; SSR, mobil istemci, birden fazla domain ve identity provider akışlarını düşün. Kararı tehdit modeli, test ve operasyon gereksinimiyle ver.
Next.js ve API arasındaki oturum sınırını tasarlarken.
HttpOnly varken XSS önemsiz veya localStorage her koşulda doğru demek.
Aynı konu. Üç farklı derinlik.
Set-Cookie: session=<opaque>; Secure; HttpOnly; SameSite=Lax; Path=/Temsili flag’ler; cross-site gereksinim ve CSRF ayrıca değerlendirilir.
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.
HttpOnly cookie kullanan sayfaya XSS girdi. Kullanıcı adına işlem mümkün mü?
Çözümü ve açıklamasını göster
Yes: script can initiate authenticated same-origin requests.Evet. Cookie’yi okumakla cookie taşıyan istek yaptırmak farklıdır.