"same-site" ve "same-origin"

"aynı site" ve "aynı kaynak" terimleri sık sık alıntılanan ancak genellikle yanlış anlaşılan terimlerdir. Örneğin, bunlardan sayfa geçişleri, fetch() istekleri, çerezler, açılış pop-up'ları, yerleştirilmiş kaynaklar ve iframe'ler bağlamında bahsedilir.

Köken

Köken

"Kaynak", şema (belirtilirse) protokol olarak da bilinir; örneğin, HTTP veya HTTPS olarak da bilinir), ana makine adı ve bağlantı noktası'nın (belirtilmişse) kombinasyonudur. Örneğin, https://www.example.com:443/foo URL'si verildiğinde "kaynak" https://www.example.com:443 olur.

"aynı-kaynak" ve "çapraz-kaynak"

Aynı şema, ana makine adı ve bağlantı noktası kombinasyonuna sahip web siteleri "aynı kaynak" olarak kabul edilir. Diğer her şey "kaynaklar arası" olarak kabul edilir.

Kaynak A Kaynak B Kaynak A ve B'nin "aynı kaynak" mı yoksa "çapraz kaynak" mı olduğuna ilişkin açıklama
https://www.example.com:443 https://www.evil.com:443 cross-origin: farklı alan adları
https://example.com:443 cross-origin: farklı alt alan adları
https://giriş.example.com:443 cross-origin: farklı alt alan adları
http://www.example.com:443 cross-origin: farklı şemalar
https://www.example.com:80 cross-origin: farklı bağlantı noktaları
https://www.example.com:443 same-origin: tam eşleme
https://www.example.com same-origin: implicit bağlantı noktası numarası (443) ile eşleşir

Site

Site (TLD+1)

.com ve .org gibi üst düzey alanlar (TLD'ler), Kök Bölge Veritabanı'nda listelenir. Yukarıdaki örnekte "site"; şema, TLD ve alan adının kendisinden hemen önceki bölümünün (buna TLD+1 deriz) birleşimidir. Örneğin, https://www.example.com:443/foo URL'si verildiğinde "site" https://example.com olur.

Genel Son Ek Listesi ve eTLD

.co.jp veya .github.io gibi öğeleri içeren alanlar için sadece .jp ya da .io kullanımı "siteyi" tanımlamak için yeterince ayrıntılı değildir. Belirli bir TLD için kaydedilebilir alan düzeyini algoritmik olarak belirlemenin bir yolu yoktur. Bu nedenle Genel Son Ek Listesi'nde tanımlanan genel son eklerin bir listesi oluşturuldu. Bu herkese açık sonekler, etkili TLD'ler (eTLD) olarak da adlandırılır. eTLD listesi publicsuffix.org/list adresinde mevcuttur.

eTLD içeren bir alanın "site" bölümünü tanımlamak için .com örneğiyle aynı uygulamayı uygulayın. Örneğin https://www.project.github.io:443/foo, şema https, eTLD .github.io ve eTLD+1 project.github.io şeklindedir. Dolayısıyla https://project.github.io, bu URL için "site" olarak kabul edilir.

Site (eTLD+1)

"aynı-site" ve "siteler arası"

Aynı şemaya ve aynı eTLD+1'e sahip web siteleri "aynı site" olarak kabul edilir. Farklı bir şema veya farklı bir eTLD+1'e sahip web siteleri, "siteler arası"dır.

Kaynak A Kaynak B A ve B Kaynaklarının "aynı site" mi yoksa "siteler arası" mı olduğuna ilişkin açıklama
https://www.example.com:443 https://www.evil.com:443 cross-site: farklı etki alanları
https://giriş.example.com:443 same-site: Farklı alt alan adları önemli değildir
http://www.example.com:443 cross-site: farklı şemalar
https://www.example.com:80 same-site: Farklı bağlantı noktaları önemli değildir
https://www.example.com:443 same-site: tam eşleme
https://www.example.com same-site: "Bağlantı noktaları önemli değildir

"ayrıntısız aynı site"

şemasız aynı site

"Aynı site" tanımı, HTTP'nin zayıf kanal olarak kullanılmasını önlemek için URL şemasını sitenin bir parçası olarak kabul edecek şekilde değişti. Şema karşılaştırması içermeyen eski "aynı site" kavramı artık "Şemasız aynı site" olarak adlandırılıyor. Örneğin, yalnızca eTLD+1 kısmı önemli olduğundan ve şema dikkate alınmadığından http://www.example.com ve https://www.example.com, şemasız aynı site olarak kabul edilir ancak aynı site değildir.

Kaynak A Kaynak B Kaynak A ve B'nin "şablonsuz aynı site" olup olmadığının açıklaması
https://www.example.com:443 https://www.evil.com:443 cross-site: farklı etki alanları
https://giriş.example.com:443 schemeless same-site: farklı alt alan adları fark etmez
http://www.example.com:443 schemeless same-site: farklı şemalar fark etmez
https://www.example.com:80 schemeless same-site: farklı bağlantı noktaları önemli değildir
https://www.example.com:443 schemeless same-site: tam eşleme
https://www.example.com schemeless same-site: bağlantı noktaları önemli değildir

İsteğin "aynı site", "aynı kaynak" veya "siteler arası" olup olmadığını kontrol etme

Tüm modern tarayıcılar (Safari, yakında açılış özelliğini destekler) istekleri bir Sec-Fetch-Site HTTP üst bilgisi ile birlikte gönderir. Başlık aşağıdaki değerlerden birine sahiptir:

  • cross-site
  • same-site
  • same-origin
  • none

Sec-Fetch-Site değerini inceleyerek isteğin "aynı site", "aynı kaynak" veya "siteler arası" olma durumunu belirleyebilirsiniz.