Düzenli Aynı Site

"Aynı site" tanımı, URL şemasını içerecek şekilde değişmektedir. Bu nedenle, bir sitenin HTTP ve HTTPS sürümleri arasındaki bağlantılar artık siteler arası istekler olarak sayılmaktadır. Mümkün olduğunda sorunlardan kaçınmak için varsayılan olarak HTTPS'ye yükseltin veya hangi SameSite özellik değerlerinin gerektiğiyle ilgili ayrıntılar için okumaya devam edin.

Şemalı Same-Site, bir web sitesinin (web) tanımını yalnızca kaydedilebilir alan adından, şema + kaydedilebilir alan adıyla değiştirir. Daha fazla ayrıntı ve örneği "same-site" ve "same-origin"i anlama bölümünde bulabilirsiniz.

İyi haber: Web siteniz zaten HTTPS'ye tamamen yükseltilmişse hiçbir şey için endişelenmenize gerek yoktur. Sizin açınızdan hiçbir değişiklik olmayacak.

Web sitenizi henüz tam olarak yükseltmediyseniz öncelik bu olmalıdır. Ancak site ziyaretçilerinizin HTTP ve HTTPS arasında geçiş yapacağı durumlar varsa bu yaygın senaryolardan bazıları ve ilişkili SameSite çerez davranışı aşağıda özetlenmiştir.

Hem Chrome'da hem de Firefox'ta test etmek için bu değişiklikleri etkinleştirebilirsiniz.

  • Chrome 86'da about://flags/#schemeful-same-site özelliğini etkinleştirin. İlerleme durumunu Chrome Durumu sayfasından izleyebilirsiniz.
  • Firefox 79'da about:config aracılığıyla network.cookie.sameSite.schemeful değerini true olarak ayarlayın. İlerleme durumunu Bugzilla sorunu üzerinden takip edebilirsiniz.

Çerezler için varsayılan olarak SameSite=Lax olarak yapılan değişikliğin ana nedenlerinden biri, Siteler Arası İstek Sahtekarlığına (CSRF) karşı koruma sağlamaktı. Bununla birlikte, güvenli olmayan HTTP trafiği, ağ saldırganlarına sitenin güvenli HTTPS sürümünde kullanılacak çerezlerle kurcalama fırsatı sunmaya devam eder. Şemalar arasında bu ek siteler arası sınırın oluşturulması, bu saldırılara karşı daha fazla savunma sağlar.

Şemalar arası sık karşılaşılan senaryolar

Bir web sitesinin şemalar arası sürümleri arasında gezinmek (örneğin, http://site.example ile https://site.example arasında bağlantı oluşturmak) önceden SameSite=Strict çerezlerinin gönderilmesine olanak tanıyordu. Bu, artık siteler arası gezinme olarak kabul edildiğinden SameSite=Strict çerezlerinin engelleneceği anlamına gelir.

Bir sitenin güvenli olmayan HTTP sürümünde güvenli HTTPS sürümüne giden bir bağlantının izlenmesiyle tetiklenen şemalar arası gezinme. SameSite=Strict çerezler engellendi, SameSite=Lax ve SameSite=None; Güvenli çerezlere izin veriliyor.
HTTP'den HTTPS'ye şemalar arası gezinme.
HTTP → HTTPS HTTPS → HTTP
SameSite=Strict ⛔ Engellendi ⛔ Engellendi
SameSite=Lax ✓ İzin verilir ✓ İzin verilir
SameSite=None;Secure ✓ İzin verilir ⛔ Engellendi

Alt kaynaklar yükleniyor

Tam HTTPS sürümüne yükseltmeye çalışırken burada yaptığınız değişiklikler yalnızca geçici bir düzeltme olarak kabul edilmelidir.

Alt kaynaklara örnek olarak resimler, iframe'ler ve XHR veya Fetch ile yapılan ağ istekleri verilebilir.

Bir sayfada şemalar arası alt kaynak yüklemek önceden SameSite=Strict veya SameSite=Lax çerezlerinin gönderilmesine ya da ayarlanmasına izin veriyordu. Artık bu işlem, diğer üçüncü taraf veya siteler arası alt kaynaklarla aynı şekilde işlenir. Bu, tüm SameSite=Strict veya SameSite=Lax çerezlerinin engelleneceği anlamına gelir.

Ayrıca tarayıcı, güvenli olmayan şemalardan gelen kaynakların güvenli bir sayfaya yüklenmesine izin verse bile, bu isteklerde üçüncü taraf veya siteler arası çerezler Secure kullanılmasını gerektirdiğinden tüm çerezler engellenir.

Güvenli olmayan HTTP sürümüne dahil edilen sitenin güvenli HTTPS sürümündeki bir kaynağın oluşturduğu çapraz şema alt kaynağı. SameSite=Strict ve SameSite=Lax çerezler engellendi ve SameSite=None; Secure çerezlere izin verilir.
HTTPS üzerinden şemalar arası alt kaynak içeren bir HTTP sayfası.
HTTP → HTTPS HTTPS → HTTP
SameSite=Strict ⛔ Engellendi ⛔ Engellendi
SameSite=Lax ⛔ Engellendi ⛔ Engellendi
SameSite=None;Secure ✓ İzin verilir ⛔ Engellendi

Form YAYINLAMA

Bir web sitesinin şemalar arası sürümleri arasında yükleme yapmak, önceden SameSite=Lax veya SameSite=Strict ile ayarlanan çerezlerin gönderilmesine izin veriyordu. Şimdi bu, siteler arası bir POST olarak işlenir; yalnızca SameSite=None çerez gönderilebilir. Varsayılan olarak güvenli olmayan sürümü sunan ancak oturum açma veya çıkış formunu gönderdikten sonra kullanıcıları güvenli sürüme yükselten sitelerde bu senaryoyla karşılaşabilirsiniz.

Alt kaynaklarda olduğu gibi, istek güvenliden (ör. HTTPS) güvenli olmayan bir içeriğe (ör. HTTP) gidiyorsa üçüncü taraf veya siteler arası çerezler Secure gerektirdiğinden bu isteklerde tüm çerezler engellenir.

Sitenin güvenli olmayan HTTP sürümündeki bir formun, güvenli HTTPS sürümüne gönderilmesinden kaynaklanan şema arası form gönderimi. SameSite=Strict ve SameSite=Lax çerezler engellendi ve SameSite=None; Secure çerezlere izin verilir.
HTTP'den HTTPS'ye şemalar arası form gönderme.
HTTP → HTTPS HTTPS → HTTP
SameSite=Strict ⛔ Engellendi ⛔ Engellendi
SameSite=Lax ⛔ Engellendi ⛔ Engellendi
SameSite=None;Secure ✓ İzin verilir ⛔ Engellendi

Sitemi nasıl test edebilirim?

Geliştirici araçları ve mesajlaşma özelliği Chrome ve Firefox'ta kullanılabilir.

Chrome 86'dan itibaren DevTools'daki Sorunlar sekmesinde Schemeful Same-Site sorunları yer alacaktır. Siteniz için aşağıdaki sorunların vurgulandığını görebilirsiniz.

Gezinme sorunları:

  • "Aynı site isteklerinde çerezlerin gönderilmeye devam etmesi için tamamen HTTPS'ye geç": Chrome'un gelecekteki bir sürümünde çerezin engelleneceğini belirten bir uyarı.
  • "Çerezlerin aynı site isteklerinde gönderilmesi için tamamen HTTPS'ye geç": Çerezin engellendiği bir uyarı.

Alt kaynak yükleme sorunları:

  • "Çerezlerin aynı site alt kaynaklarına gönderilmesine devam etmek için tamamen HTTPS'ye taşı" veya "Çerezlerin aynı site alt kaynakları tarafından ayarlanmasına izin vermeye devam etmek için tamamen HTTPS'ye taşı": Çerezin Chrome'un gelecekteki bir sürümünde engelleneceğine dair uyarılar.
  • "Çerezlerin aynı site alt kaynaklarına gönderilmesi için tamamen HTTPS'ye taşı" veya "Çerezlerin aynı site alt kaynakları tarafından ayarlanmasına izin vermek için tamamen HTTPS'ye taşı": Çerezin engellendiğine dair uyarılar. İkinci uyarı, bir formu YAYINlarken de görünebilir.

Daha fazla ayrıntıyı Schemeful Same-Site için Test ve Hata Ayıklama İpuçları bölümünde bulabilirsiniz.

Firefox 79'da, network.cookie.sameSite.schemeful about:config aracılığıyla true değerine ayarlandığında konsol, Schemeful Aynı Site sorunları için mesaj görüntüler. Sitenizde aşağıdakileri görebilirsiniz:

  • "Şema eşleşmediğinden cookie_name çerezi, http://site.example/ adresine karşı siteler arası çerez olarak yakında ele alınacaktır."
  • "cookie_name çerezi, şema eşleşmediğinden http://site.example/ adresine göre siteler arası olarak değerlendirildi."

SSS

Sitem zaten HTTPS'de tamamen kullanılabiliyor. Neden tarayıcımın Geliştirici Araçları'nda sorunlarla karşılaşıyorum?

Bağlantılarınız ve alt kaynaklarınızdan bazıları hâlâ güvenli olmayan URL'lere işaret ediyor olabilir.

Bu sorunu düzeltmenin bir yolu HTTP Strict-Transport-Security (HSTS) ve includeSubDomain yönergesini kullanmaktır. HSTS + includeSubDomain kullanıldığında, sayfalarınızdan biri yanlışlıkla güvenli olmayan bir bağlantı içerse bile tarayıcı otomatik olarak bunun yerine güvenli sürümü kullanır.

HTTPS'ye yükseltemezsem ne olur?

Kullanıcılarınızı korumak için sitenizi tamamen HTTPS'ye yükseltmenizi önemle tavsiye etsek de, kendiniz yapamıyorsanız bu seçeneği sunup sunmadıklarını öğrenmek için barındırma sağlayıcınızla konuşmanızı öneririz. Kendi şirketinizi barındırıyorsanız Let's Encrypt, sertifika yüklemek ve yapılandırmak için çeşitli araçlar sunar. Sitenizi bir CDN veya HTTPS bağlantısı sağlayabilecek başka bir proxy arkasına taşımayı da araştırabilirsiniz.

Bu hâlâ mümkün değilse etkilenen çerezlerde SameSite korumasını gevşetmeyi deneyin.

  • Yalnızca SameSite=Strict çerezlerin engellendiği durumlarda, korumayı Lax değerine düşürebilirsiniz.
  • Hem Strict hem de Lax çerezlerinin engellendiği ve çerezlerinizin güvenli bir URL'ye gönderildiği (veya güvenli bir URL'den ayarlandığı) durumlarda, korumaları None değerine düşürebilirsiniz.
    • Çerezleri gönderdiğiniz (veya bunları ayarladığınız) URL güvenli değilse bu çözüm başarısız olur. Bunun nedeni, SameSite=None ürününün çerezlerde Secure özelliğini gerektirmesidir. Bu, söz konusu çerezlerin güvenli olmayan bir bağlantı üzerinden gönderilemeyeceği veya ayarlanamayacağı anlamına gelir. Bu durumda, siteniz HTTPS sürümüne geçene kadar bu çereze erişemezsiniz.
    • Bunun geçici bir durum olduğunu unutmayın. Bunun nedeni, üçüncü taraf çerezlerinin kullanımdan kaldırılmasıdır.

Bir SameSite özelliği belirtmediysem bu durum çerezlerimi nasıl etkiler?

SameSite özelliği olmayan çerezler, SameSite=Lax değerini belirtmiş gibi değerlendirilir ve aynı şema arası davranış bu çerezler için de geçerlidir. Güvenli olmayan yöntemlere yönelik geçici istisnanın hâlâ geçerli olduğunu unutmayın. Daha fazla bilgi için Chromium'la ilgili SameSite SSS sayfasındaki Lax + POST etkisini azaltma bölümüne bakın.

WebSockets nasıl etkilenir?

WebSocket bağlantıları sayfayla aynı güvenlik düzeyine sahipse yine de aynı site olarak kabul edilir.

Aynı site:

  • https:// kaynağından wss:// bağlantı
  • http:// kaynağından ws:// bağlantı

Çapraz site:

  • http:// kaynağından wss:// bağlantı
  • https:// kaynağından ws:// bağlantı

Fotoğrafçı: Julissa Capdevilla Unsplash