# Same-Origin Policy (Aynı Kaynak Politikası)

Adres: https://softwaredictionary.org/tr/terimler/same-origin-policy
Kategori: Güvenlik
Son güncelleme: 2026-09-30
Türkçe karşılığı: aynı köken politikası
Okunuşu: seym oricin polısi

Kısaca: Same-origin policy, bir sitedeki betiklerin, o site açıkça izin vermedikçe başka bir sitedeki verileri okumasını engelleyen tarayıcı güvenlik kuralıdır.

## Same-origin policy nedir?

Same-origin policy, tarayıcının temel yalıtım kuralıdır. Bir web sayfasının kendi origin'inden gelen kaynaklarla serbestçe etkileşime girmesine izin verir, ancak sayfanın betiklerinin diğer origin'lere ait yanıtları, sayfaları veya depolamayı okumasını engeller. Bu kural olmasaydı ziyaret ettiğiniz herhangi bir web sitesi, tarayıcınızı ve çerezlerinizi kullanarak diğer sitelerdeki e-postanızı veya banka bakiyenizi okuyabilirdi.

Origin, `https://app.example.com:443` örneğindeki gibi şema (scheme), host ve portun birleşimidir. İki URL'nin aynı origin'e sahip olması için üçünün de eşleşmesi gerekir; bu yüzden `http://example.com` ile `https://example.com` farklı origin'lerdir, `example.com` ile `api.example.com` da öyle. Politika çoğunlukla göndermeyi değil, okumayı kısıtlar: bir sayfa yine de diğer origin'lerden görselleri, betikleri ve iframe'leri gömebilir ve onlara form gönderebilir, ancak JavaScript'i cross-origin bir `fetch` yanıtını, cross-origin bir iframe'in DOM'unu veya başka bir origin'in çerezlerini ve yerel depolamasını okuyamaz.

Bir apartman girişindeki posta kutuları gibidir: herkes herhangi bir kutuya mektup atabilir, ancak yalnızca anahtarı olan sakin kutuyu açıp içindekini okuyabilir. Kuralı gevşetmenin kontrollü yolları vardır: cross-origin `fetch` istekleri için CORS ve pencereler ile iframe'ler arasındaki iletişim için `postMessage` gibi. Okumaya odaklanması, başka savunmalara neden hâlâ ihtiyaç duyulduğunu da açıklar: siteler arası istekler yine gönderilebilir, bu yüzden CSRF mümkün kalır ve çerçeveleme varsayılan olarak serbesttir, bu yüzden clickjacking'in kendi koruması gerekir.

Same-origin policy sıklıkla CORS ile karıştırılır. Same-origin policy tarayıcılara yerleşik varsayılan kısıtlamadır; CORS ise bir sunucunun `Access-Control-Allow-Origin` gibi başlıklar göndererek bu kısıtlamayı gevşetmesini sağlayan bir mekanizmadır. Dolayısıyla bir CORS hatası, politikanın tasarlandığı gibi çalıştığı anlamına gelir. İkisi de yalnızca tarayıcılar tarafından uygulanır; bu da onları bir API'yi doğrudan çağıran betiklere veya sunuculara karşı korumadığı anlamına gelir.

## Önemli noktalar

- Same-origin policy, bir origin'deki betiklerin başka bir origin'deki verileri okumasını engeller.
- Origin; şema, host ve portun birleşimidir.
- Cross-origin göndermeye ve gömmeye çoğunlukla izin verilir; sonuçları okumak engellenir.
- CORS ve `postMessage`, politikayı gevşetmenin standart ve kontrollü yollarıdır.
- Tarayıcılar tarafından uygulanır ve sunucu taraflı yetkilendirmenin yerini tutmaz.

## Örnek: Hangi isteklerin cross-origin sayıldığı

```javascript
// This page runs on https://shop.example.com
await fetch("/api/cart"); // same origin: allowed

// A different host is a different origin: reading the response is blocked
// unless api.other.com replies with a matching CORS header
await fetch("https://api.other.com/data");

// All of these are different origins from https://shop.example.com:
// http://shop.example.com        (different scheme)
// https://www.example.com        (different host)
// https://shop.example.com:8443  (different port)
```

## Sık sorulan sorular

**Aynı origin ne sayılır?**

İki URL'nin şeması, host'u ve portu birebir aynıysa aynı origin'i paylaşır. `https://example.com/a` ve `https://example.com/b` aynı origin'dir; `https://example.com` ve `https://api.example.com` ise değildir.

**Same-origin policy ile CORS arasındaki fark nedir?**

Same-origin policy, betiklerin cross-origin yanıtları okumasını engelleyen tarayıcının varsayılan kuralıdır. CORS ise bir sunucunun belirli başka origin'lerin yanıtlarını okumasına izin vermek için kullandığı, isteğe bağlı bir mekanizmadır.

**Same-origin policy CSRF'i önler mi?**

Hayır. Saldırganın sayfasının yanıtı okumasını engeller, ancak tarayıcı siteler arası isteği yine, çoğu zaman kullanıcının çerezleriyle gönderir. CSRF koruması, sunucuda token'lar, `SameSite` çerezleri veya origin denetimleri gerektirir.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
