COMPUTER ENGINEER

Örneklere git
Blog
Next.js / ASP.NET Core / SQL6 dk çalışma
10/ 41

Tarayıcı ve frontend

CORS: tarayıcının koyduğu sınır

CORS sunucuyu korumaz; kullanıcının tarayıcısının başka sitelere senin adına okuma yapmasını sınırlar.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

Aynı köken politikası (same-origin policy), bir sitedeki JavaScript’in başka bir kökenden gelen yanıtları okumasını varsayılan olarak engeller. Köken; şema, alan adı ve portun birleşimidir. CORS (Cross-Origin Resource Sharing), sunucunun ‘şu kökenler yanıtımı okuyabilir’ diyerek bu kısıtlamayı kontrollü biçimde gevşetmesidir.

Basit olmayan isteklerde (örneğin JSON gövdeli bir POST veya özel başlık) tarayıcı önce bir OPTIONS ‘preflight’ isteği gönderir. Sunucu izin veren başlıklarla yanıtlarsa asıl istek yapılır. CORS hatası tarayıcı konsolunda görünür; curl veya sunucudan sunucuya istekte CORS diye bir şey yoktur.

Bu yüzden CORS bir kimlik doğrulama yöntemi değildir: kötü niyetli biri tarayıcı dışından API’ni her zaman çağırabilir. Bu projede tarayıcı API’ye doğrudan gitmez; aynı kökendeki Next.js üzerinden gider. Böylece CORS hiç devreye girmez ve API yalnız iç ağdan erişilebilir kalır.

NERESİNDE KULLANIRSIN?

CORS hatalarını doğru okumak ve CORS’u güvenlik sanmamak için.

SIK YAPILAN HATA

Hatayı ‘geçirmek’ için Access-Control-Allow-Origin: * ile birlikte kimlik bilgilerine izin vermeye çalışmak.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

Temsili örnek
https://ataberksahin.net  ve  https://api.ataberksahin.net
→ alan adı farklı → farklı köken → CORS gerekir

Alt alan adı bile kökeni değiştirir.

Bu sayfa gerçek bir sunucuya veya veritabanına bağlanmaz. Kod örnekleri .NET 8, Next.js ve SQL Server için temsilîdir; süreler simülasyondaki örnek değerlerdir, ölçüm değildir. Örnekleri yalnız kendi geliştirme ortamında dene; gerçek bağlantı dizesi, token veya parola paylaşma.

02 / SIRA SENDE

Önce kendin dene.

API’nde CORS’u yalnız kendi sitene açtın. Biri ‘Artık API’m güvende, başka siteler kullanamaz’ diyor. Bu ifadedeki hata nedir?

Çözümü ve açıklamasını göster
Açıklamalı çözüm
CORS yalnız tarayıcıların başka kökenlerden yanıt okumasını sınırlar.
curl, Postman veya bir sunucu API’yi yine çağırabilir.
Gerçek koruma: kimlik doğrulama, yetkilendirme, hız sınırı.

CORS kullanıcıyı başka sitelerin tarayıcı üzerinden veri okumasından korur; API’yi istemcilerden korumaz.