CORS (Cross-Origin Resource Sharing) Nedir?

yumutlu
2 min readFeb 28, 2023

--

CORS (Cross-Origin Resource Sharing), web uygulamalarında güvenlik önlemi olarak kullanılan bir mekanizmadır. Temel olarak, bir web sitesinin kaynaklarına başka bir domain veya porttan erişimine izin verip vermediğini kontrol eder.

Tarayıcılar, web sitelerindeki kaynaklara doğrudan erişimi engellerler. Eğer bir web sitesi, başka bir domain veya porttan gelen isteklere izin vermek istiyorsa, sunucuda CORS ayarları yapması gerekir. Bu ayarlar, istek yapan domain veya portu belirleyerek, kaynaklara erişime izin verir veya engeller.

Örneğin, bir React uygulaması, farklı bir sunucuda barındırılan bir API’den veri almak istediğinde, bu API sunucusunun CORS ayarlarının yapılması gereklidir. Aksi takdirde, tarayıcı CORS hatası nedeniyle isteği engelleyecektir.

CORS ayarları, sunucu tarafında yapılır ve HTTP başlıkları aracılığıyla iletilir. En yaygın olarak kullanılan CORS başlıkları “Access-Control-Allow-Origin”, “Access-Control-Allow-Methods” ve “Access-Control-Allow-Headers” başlıklarıdır.

  • Access-Control-Allow-Origin: Bu başlık, hangi domainlere veya portlara izin verildiğini belirler. Örneğin, “Access-Control-Allow-Origin: https://example.com" şeklinde belirtilen bir başlık, sadece example.com domaininden gelen isteklere izin verir. Birden fazla domain veya port için virgülle ayrılmış bir liste de belirtilebilir. Ayrıca, “*” karakteri kullanarak tüm domainlere izin verilebilir.
  • Access-Control-Allow-Methods: Bu başlık, hangi HTTP metodlarının izin verildiğini belirler. Örneğin, “Access-Control-Allow-Methods: GET, POST, PUT, DELETE” şeklinde belirtilen bir başlık, sadece GET, POST, PUT ve DELETE metodlarına izin verir.
  • Access-Control-Allow-Headers: Bu başlık, hangi HTTP başlıklarının izin verildiğini belirler. Örneğin, “Access-Control-Allow-Headers: Content-Type, Authorization” şeklinde belirtilen bir başlık, sadece “Content-Type” ve “Authorization” başlıklarına izin verir.

Bu başlıklar, sunucunun CORS ayarlarını yapılandırmak için kullanılır ve HTTP yanıt başlıkları aracılığıyla tarayıcıya iletilir. Örneğin, bir Node.js sunucusunda Express çerçevesi kullanarak CORS ayarlarını yapılandırmak için şu kodu kullanabilirsiniz:

const express = require('express');
const cors = require('cors');

const app = express();
app.use(cors({
origin: 'https://example.com',
methods: ['GET', 'POST', 'PUT', 'DELETE'],
allowedHeaders: ['Content-Type', 'Authorization']
}));

Bu kod, sadece example.com domaininden gelen isteklere izin verir, GET, POST, PUT ve DELETE metodlarına izin verir ve sadece “Content-Type” ve “Authorization” başlıklarına izin verir. Bu ayarlar, HTTP yanıt başlıkları aracılığıyla tarayıcıya iletilir ve CORS hatası önlenir.

--

--