ReactServer ComponentsGüvenlikOAuth

React 19 Server Components: Güvenli API Çağrıları ve Kimlik Doğrulama

28 Ocak 20268 dk okumaVefaSec Editör
React 19 Server Components: Güvenli API Çağrıları ve Kimlik Doğrulama

React Server Components, geleneksel SPA mimarisindeki en büyük güvenlik sorunlarından birini — API key'lerin client'a sızması — yapısal olarak çözüyor. Ancak yeni mimari yeni hatalara da yol açabilir. Bu yazıda Next.js 16 + React 19 üzerinde güvenli bir stack nasıl kurulur inceliyoruz.

Server Components'ın Güvenlik Avantajı

RSC'lerde yazdığınız kod yalnızca server'da çalışır; client bundle'a hiç girmez. Bu demek oluyor ki veritabanı bağlantı dizgileri, API key'ler, JWT secret'lar ve iç API endpoint URL'leri DevTools'la açılmış browser'da görünmez.

Geleneksel SPA'da ortam değişkenini NEXT_PUBLIC_ ile işaretlerseniz client'a çıkar; RSC'de böyle bir zorunluluk yok, `process.env.DATABASE_URL` doğrudan kullanılabilir. Kod review'da NEXT_PUBLIC_ prefix'inin dikkatle kontrol edilmesi kritik.

Kimlik Doğrulama ve Oturum Yönetimi

next-auth (Auth.js) Next.js 16 ile uyumlu; OAuth providers, JWT veya database session, CSRF token ve cookie güvenliği varsayılan. Session bilgisine server-side `auth()` fonksiyonuyla ulaşır, RSC içinde direkt kontrol edersiniz.

Client Components'ta oturum lazım olduğunda `<SessionProvider>` içinde `useSession()` ile alınır; ama kritik kararlar (role check, permission) her zaman server'da yeniden doğrulanmalı.

JWT, Cookie ve CSRF Koruması

JWT token'ı HttpOnly + Secure + SameSite=Strict cookie'de saklayın; LocalStorage'da asla tutmayın (XSS'e açık). Short-lived access token (15 dk) + refresh token (7 gün) + rotation pattern güvenli bir kombinasyon.

CSRF için next-auth'un built-in koruması veya double-submit pattern. Server Actions ise Next.js 16'da otomatik CSRF koruması ile gelir — manuel token yönetimine ihtiyaç yok.

Yaygın Hatalar ve Güvenli Pattern'ler

En sık gördüğümüz hata: Server Action içinde input validation atlamak. 'use server' direktifi verilmiş fonksiyonlar dış API endpoint'leri gibi davranır; her argüman untrusted kabul edilip Zod/Yup ile şemaya göre doğrulanmalı.

Başka sık hata: sensitive veriyi RSC'den client'a props olarak geçirmek. React, props'ları serileştirerek client'a gönderir; şifreler, token'lar, iç ID'ler hiç geçirilmemeli — yalnızca UI için gereken minimum alan.

Kurumsal Stack ve Sonuç

VefaSec'in önerdiği kurumsal Next.js 16 güvenlik stack'i: next-auth + Prisma + Zod + CSP nonce + rate limiting middleware + OWASP ASVS L1 kontrol listesi. Her release'de bu kontroller otomatik CI'da çalışıyor.

Güvenli bir SaaS kurmak için başlangıç noktası arıyorsanız, VefaSec'in açık kaynak Next.js + next-auth starter şablonu GitHub'da yayında.

Projeniz veya denetim ihtiyacınız için VefaSec'le konuşun.

Diyarbakır merkezli ekibimiz; kurumsal müşterilere uçtan uca yazılım geliştirme, sızma testi ve siber güvenlik danışmanlığı hizmetleri sunar. Keşif görüşmesi ücretsiz, bağlayıcı değil.

İlgili Yazılar