CORS (Cross-Origin Resource Sharing) Nedir?

CORS Nedir? 
Cross-Origin Resource Sharing (Kaynaklar Arası Paylaşım), web uygulamalarının kendi kaynakları dışındaki (farklı domain, protokol veya port) kaynaklara güvenli bir şekilde erişim sağlamasını sağlayan bir güvenlik mekanizmasıdır. 

Güvenlik Politikaları (CORS Neden Gereklidir?): 

  • Tarayıcılar varsayılan olarak SOP (Same-Origin Policy) ile korunur, bu politika aynı kaynaktan gelmeyen kaynaklara erişimi kısıtlar. 

  • SOP (Same-Origin Policy), web tarayıcıları tarafından uygulanan bir güvenlik politikasıdır ve web uygulamalarının güvenliğini sağlamak için kullanılır. Bu politika, bir kaynağın yalnızca kendi origin’inden gelen verilere ve kaynaklara erişmesine izin verir ve başka origin’lerden gelen verilere erişimi engeller. 

  • CORS, SOP’un katı kurallarını esnetmek ve daha esnek bir veri paylaşımı sağlamak için kullanılır. 

Şekil 

CORS Nasıl Çalışır? 

  • Preflight İstekleri: 

  • Tarayıcı, asıl isteği yapmadan önce sunucuya OPTIONS metoduyla bir ön kontrol (preflight) isteği gönderir. 

  • Bu ön kontrol, sunucunun istenilen kaynağa erişim izni verip vermediğini kontrol eder. 

  • Ana Başlıklar: 

  • Origin: İstek yapan kaynağın adresini belirtir. 

  • Access-Control-Allow-Origin: Sunucunun hangi origin’lere izin verdiğini belirtir. 

  • Access-Control-Allow-Methods: İzin verilen HTTP metodlarını belirtir. 

  • Access-Control-Allow-Headers: İzin verilen özel başlıkları belirtir. 

  • Access-Control-Allow-Credentials: Kimlik bilgisi içeren isteklere izin verilip verilmediğini belirtir. 

 

Şekil 

CORS Politikası Nasıl Belirlenir? 

  • Sunucu Tarafında Yapılandırma: 

  • Sunucunun, belirli başlıkları ayarlayarak CORS politikasını belirtmesi gerekir. 

  • Örneğin, ASP.NET Core, Node.js, ve diğer sunucu ortamları için CORS desteği sağlanabilir. 

  • Örnek ASP.NET Core Yapılandırması:

CORS ve Güvenlik 

  • Tehditler: 

  • Yanlış yapılandırılmış CORS politikaları, CSRF (Cross-Site Request Forgery) gibi güvenlik açıklarına neden olabilir. 

  • Güvenli olmayan kaynakların erişimine izin vermek, veri sızıntılarına yol açabilir. 

  • En İyi Uygulamalar: 

  • En Az İzin Politikası: Sadece gerekli kaynaklara izin ver. 

  • Özelleştirilmiş Başlık ve Metodlar: Sadece izin verilen başlık ve metodları kullan. 

  • Kimlik Bilgileri: Yalnızca gerektiğinde kimlik bilgisi erişimine izin ver. 

 

Uygulama Örnekleri 

  • Tarayıcı Desteği: 

  • CORS, modern tarayıcılar tarafından geniş çapta desteklenir. 

  • Farklı kaynaklardan gelen API çağrılarını ve üçüncü taraf servis entegrasyonlarını desteklemektedir. 

 Şekil 

CORS neden güvenlik açısından önemlidir? 

  • Verilerin farklı kökenler arasında güvenli bir şekilde paylaşılmasını sağlar. 

  • CORS ile ilgili yaygın hatalar nelerdir? 

  • Yanlış yapılandırma, hatalı başlık ayarları ve sunucu cevaplarının uygun olmaması. 

Şekil 

CORS’un Önemi: 

  • CORS, web uygulamalarının güvenli veri paylaşımını sağlarken aynı zamanda geliştirici deneyimini kolaylaştırır.