"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ığıylanetwork.cookie.sameSite.schemeful
değerinitrue
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
Gezinme
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.
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.
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.
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ğindenhttp://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 deLax
ç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 çerezlerdeSecure
ö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.
- Çerezleri gönderdiğiniz (veya bunları ayarladığınız) URL güvenli değilse bu çözüm başarısız olur. Bunun nedeni,
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ğındanwss://
bağlantıhttp://
kaynağındanws://
bağlantı
Çapraz site:
http://
kaynağındanwss://
bağlantıhttps://
kaynağındanws://
bağlantı
Fotoğrafçı: Julissa Capdevilla Unsplash