İçeriğe atla
Bizi takip edin:
ÖZEL YAZILIM VE ENDÜSTRİYEL ENTEGRASYON
KURUMSAL MİMARİ KOCAELİ & GEBZE SANAYİ BÖLGESİ

CORS (Cross-Origin) Hatası Neden Olur ve Nasıl Çözülür?

HEDEF SAHA & SEKTÖR Talaşlı İmalat, Otomotiv & Makine Sanayi
MİMARİ & STANDART Özel İmalat ERP · BOM · Saha WMS
TEMEL İŞ KAZANIMI Süreç Hızı ve Sıfır Manuel Hata
Yönetici Özeti: Modern web geliştirmede CORS hatası çözümü: Preflight OPTIONS istekleri, Access-Control başlıkları, API Gateway ve güvenlik yapılandırma kılavuzu burada.

Hızlı Özet (TL;DR)

CORS (Cross-Origin Resource Sharing), bir web sitesinin (örn: https://app.maysayazilim.com) farklı bir etki alanındaki (https://api.maysayazilim.com) kaynaklara tarayıcı üzerinden erişmesini denetleyen bir web güvenlik mekanizmasıdır. CORS bir sunucu hatası değil, tarayıcının uyguladığı bir güvenlik kuralıdır (SOP - Same-Origin Policy). Çözüm; sunucu tarafında Access-Control-Allow-Origin başlığıyla istemci alan adını güvenli listeye eklemek ve OPTIONS ön uçuş (Preflight) isteklerine doğru yanıt vermektir.

Same-Origin Policy (Aynı Köken Politikası) Nedir?

Bir isteğin “Aynı Köken” (Same-Origin) sayılması için 3 öğenin tamamen aynı olması gerekir:

  1. Protokol: http:// ve https:// farklı kökenlerdir.
  2. Domain (Alan Adı): maysayazilim.com ve api.maysayazilim.com farklı kökenlerdir.
  3. Port: localhost:3000 ve localhost:8080 farklı kökenlerdir.

Herhangi biri farklı olduğunda tarayıcı isteği “Cross-Origin” olarak sınıflandırır.

Preflight (Ön Uçuş) OPTIONS İsteği Nasıl Çalışır?

Eğer istek basit bir GET/POST isteği değilse (özel başlıklar taşıyorsa veya JSON gövdesi içeriyorsa), tarayıcı asıl istekten önce sunucuya bir keşif isteği (Preflight) gönderir:

OPTIONS /api/v1/siparisler HTTP/1.1
Host: api.maysayazilim.com
Origin: https://app.maysayazilim.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: Content-Type, Authorization

Sunucu bu isteğe şu başlıklarla HTTP 200 veya 204 dönmelidir:

HTTP/1.1 204 No Content
Access-Control-Allow-Origin: https://app.maysayazilim.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Max-Age: 86400

CORS Yapılandırmasında Yapılan Tehlikeli Hata: * (Joker Karakter)

En sık yapılan güvenlik hatası; geliştiricilerin hatadan kurtulmak için üretim ortamında Access-Control-Allow-Origin: * yazmasıdır.

  • Eğer API kimlik doğrulaması gerektiriyorsa ve çerezler (credentials: 'include') gönderiliyorsa, joker karakter (*) tarayıcı tarafından zaten engellenir.
  • Joker karakter açıldığında, internetteki herhangi bir zararlı site kullanıcının tarayıcısını kullanarak şirket API’nize sorgu atabilir.
  • Doğru Yaklaşım: Yalnızca şirketinize ait güvenilir alt alan adlarını (Allowlist) dinamik olarak doğrulamaktır.

Güvenli frontend ve backend mimarileriyle tasarlanmış web projeleri için Web Sayfası Tasarım ve Özel Yazılım Geliştirme sayfalarımızı ziyaret edebilirsiniz.

BİLGİ BANKASI & VAKALAR

İlginizi Çekebilecek Diğer Rehberler

Sanayi dijitalleşmesi, siber güvenlik ve kurumsal yazılım alanında kapsamlı analizler.

Uygulama Hizmeti

Web Sayfası Tasarım

Bu makaledeki metodolojinin anahtar teslim proje adımları ve teknik teslim detayları.

Hizmeti inceleyin

İşinize uygun çözümü birlikte çıkaralım

İhtiyacınızı dinleyelim, kapsamı ve bütçeyi netleştirelim. İlk görüşme ücretsizdir.

Teklif Formu

Size buradan dönüş yapacağız; WhatsApp numaranız olması işimizi kolaylaştırır.

Talebiniz Alındı!

Mesajınız [email protected] adresine başarıyla iletildi.
En kısa sürede sizinle iletişime geçeceğiz.