"Aynı site" tanımı, URL şemasını içerecek şekilde değişiyor. Bu nedenle, bir sitenin HTTP ve HTTPS sürümleri arasındaki bağlantılar artık siteler arası istek olarak sayılıyor. Mümkün olduğunda sorunları önlemek için varsayılan olarak HTTPS'ye geçin veya hangi SameSite özellik değerlerinin gerekli olduğuna dair ayrıntılar için okumaya devam edin.
Şema içeren aynı site, (web) sitenin tanımını yalnızca kaydedilebilir alan adından şema + kaydedilebilir alan adı olarak değiştirir. Daha fazla ayrıntı ve örnek için "Aynı site" ve "aynı kaynak" kavramlarını anlama başlıklı makaleyi inceleyin.
İyi haber şu: Web siteniz zaten tamamen HTTPS'ye yükseltildiyse endişelenmenize gerek yoktur. Sizin için hiçbir şey değişmeyecektir.
Web sitenizi henüz tamamen yeni sürüme geçirmediyseniz bu işleme öncelik vermelisiniz.
Ancak site ziyaretçilerinizin HTTP ile HTTPS arasında geçiş yaptığı durumlar varsa bu yaygın senaryolardan bazıları ve ilişkili SameSite
çerez davranışı bu makalenin ilerleyen bölümlerinde açıklanmıştır.
Bu değişiklikleri hem Chrome hem de Firefox'ta test için etkinleştirebilirsiniz.
- Chrome 86'dan itibaren
about://flags/#schemeful-same-site
seçeneğini etkinleştirin. Chrome Durumu sayfasından ilerlemeyi takip edin. - Firefox 79'dan itibaren
network.cookie.sameSite.schemeful
değerinitrue
olarak ayarlamak içinabout:config
'yi kullanın. Bugzilla sorununu kullanarak ilerlemeyi takip edin.
Çerezler için varsayılan olarak SameSite=Lax
değerine geçişin başlıca nedenlerinden biri, Siteler Arası İstek Sahteciliği (CSRF)'ne karşı koruma sağlamaktı. Ancak güvenli olmayan HTTP trafiği, ağ saldırganlarının sitenin güvenli HTTPS sürümünde kullanılacak çerezleri değiştirmesine olanak tanır. Şemalar arasında bu ek siteler arası sınırı oluşturmak, bu saldırılara karşı daha fazla savunma sağlar.
Sık karşılaşılan şemalar arası senaryolar
Gezinme
Bir web sitesinin şemalar arası sürümleri arasında gezinmek (ör. http://site.example adresinden https://site.example adresine bağlantı oluşturmak) daha önce SameSite=Strict
çerezlerinin gönderilmesine izin veriyordu. Bu işlem artık siteler arası gezinme olarak değerlendirilir. Bu da SameSite=Strict
çerezlerinin engelleneceği anlamına gelir.
![Bir sitenin güvenli olmayan HTTP sürümündeki bağlantının güvenli HTTPS sürümüne tıklanmasıyla tetiklenen şemalar arası gezinme. SameSite=Strict çerezleri engellenir, SameSite=Lax ve SameSite=None; Secure çerezlerine izin verilir.](https://web.dev/static/articles/schemeful-samesite/image/a-cross-scheme-navigation-209071cf80318.png?authuser=8&hl=tr)
HTTP → HTTPS | HTTPS → HTTP | |
SameSite=Strict
|
⛔ Engellendi | ⛔ Engellendi |
SameSite=Lax
|
✓ İzin veriliyor | ✓ İzin veriliyor |
SameSite=None;Secure
|
✓ İzin veriliyor | ⛔ Engellendi |
Alt kaynakları yükleme
Burada yaptığınız değişiklikler, tam HTTPS'ye geçiş yapmaya çalışırken yalnızca geçici bir çözüm olarak kabul edilmelidir.
Alt kaynaklara örnek olarak resimler, iFrame'ler ve XHR veya Fetch ile yapılan ağ istekleri verilebilir.
Önceden, bir sayfaya şemalar arası alt kaynak yüklemek SameSite=Strict
veya SameSite=Lax
çerezlerinin gönderilmesine ya da ayarlanmasına izin veriyordu. Artık bu, diğer tüm üçüncü taraf veya siteler arası alt kaynaklarla aynı şekilde ele alınıyor. Bu da SameSite=Strict
veya SameSite=Lax
çerezlerinin engelleneceği anlamına geliyor.
Ayrıca, tarayıcı güvenli olmayan şemalardaki kaynakların güvenli bir sayfaya yüklenmesine izin verse bile üçüncü taraf veya siteler arası çerezler Secure
gerektirdiğinden bu isteklerde tüm çerezler engellenir.
![Sitenin güvenli HTTPS sürümünden gelen bir kaynağın güvenli olmayan HTTP sürümüne dahil edilmesiyle ortaya çıkan şemalar arası alt kaynak. SameSite=Strict ve SameSite=Lax çerezleri engellenir, SameSite=None; Secure çerezlerine izin verilir.](https://web.dev/static/articles/schemeful-samesite/image/a-cross-scheme-subresourc-ee291fec730b8.png?authuser=8&hl=tr)
HTTP → HTTPS | HTTPS → HTTP | |
SameSite=Strict
|
⛔ Engellendi | ⛔ Engellendi |
SameSite=Lax
|
⛔ Engellendi | ⛔ Engellendi |
SameSite=None;Secure
|
✓ İzin veriliyor | ⛔ Engellendi |
Form gönderme
Bir web sitesinin şemalar arası sürümleri arasında yayınlama işlemi, daha önce SameSite=Lax
veya SameSite=Strict
ile ayarlanan çerezlerin gönderilmesine izin veriyordu. Bu işlem artık siteler arası bir POST olarak değerlendirilir ve yalnızca SameSite=None
çerezleri gönderilebilir. Bu senaryoya, varsayılan olarak güvenli olmayan sürümü sunan ancak oturum açma veya ödeme formu gönderildiğinde kullanıcıları güvenli sürüme geçiren sitelerde rastlayabilirsiniz.
Alt kaynaklarda olduğu gibi, istek güvenli bir bağlamdan (ör. HTTPS) güvenli olmayan bir bağlama (ör. HTTP) gönderiliyorsa üçü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 formdan güvenli HTTPS sürümüne gönderilen form sonucu oluşan şemalar arası form gönderimi. SameSite=Strict ve SameSite=Lax çerezleri engellenir, SameSite=None; Secure çerezlerine izin verilir.](https://web.dev/static/articles/schemeful-samesite/image/a-cross-scheme-form-submi-528e4c1eb4c83.png?authuser=8&hl=tr)
HTTP → HTTPS | HTTPS → HTTP | |
SameSite=Strict
|
⛔ Engellendi | ⛔ Engellendi |
SameSite=Lax
|
⛔ Engellendi | ⛔ Engellendi |
SameSite=None;Secure
|
✓ İzin veriliyor | ⛔ Engellendi |
Sitemi nasıl test edebilirim?
Geliştirici araçları ve mesajlaşma, Chrome ve Firefox'ta kullanılabilir.
Chrome 86'dan itibaren DevTools'daki Sorun sekmesi, Schemeful Same-Site sorunlarını içerecek. Siteniz için aşağıdaki sorunların vurgulandığını görebilirsiniz.
Gezinme sorunları:
- "Aynı site isteklerinde çerez göndermeye devam etmek için tamamen HTTPS'ye geçin": Çerezin Chrome'un gelecekteki bir sürümünde engelleneceği konusunda uyarı.
- "Çerezlerin aynı site isteklerinde gönderilmesi için tamamen HTTPS'ye geçin": Çerezin engellendiğine dair bir uyarı.
Alt öğe yükleme sorunları:
- "Çerezlerin aynı sitedeki alt kaynaklara gönderilmeye devam etmesi için tamamen HTTPS'ye geçin" veya "Çerezlerin aynı sitedeki alt kaynaklar tarafından ayarlanmaya devam etmesi için tamamen HTTPS'ye geçin": Çerezin Chrome'un gelecekteki bir sürümünde engelleneceği uyarıları.
- "Çerezlerin aynı sitedeki alt kaynaklara gönderilmesi için tamamen HTTPS'ye geçin" veya "Çerezlerin aynı sitedeki alt kaynaklar tarafından ayarlanmasına izin vermek için tamamen HTTPS'ye geçin": Çerezin engellendiğine dair uyarılar. İkinci uyarı, bir form POST edilirken de gösterilebilir.
Daha fazla bilgi için Schemeful Same-Site için Test ve Hata Ayıklama İpuçları başlıklı makaleyi inceleyin.
Firefox 79'dan itibaren, network.cookie.sameSite.schemeful
about:config
aracılığıyla true
olarak ayarlandığında konsolda Schemeful Same-Site sorunlarıyla ilgili mesaj gösterilir.
Sitenizde şunları görebilirsiniz:
- "
cookie_name
çerezi, şema eşleşmediği için yakındahttp://site.example/
sitesi için siteler arası çerez olarak değerlendirilecek." - "
cookie_name
çerezi, şema eşleşmediğindenhttp://site.example/
ile siteler arası olarak değerlendirildi."
SSS
Sitem zaten tamamen HTTPS'de kullanılabilir durumda. Tarayıcımın DevTools'unda neden sorun görüyorum?
Bağlantılarınızın ve alt kaynaklarınızın 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
ile, sayfalarınızdan biri yanlışlıkla güvenli olmayan bir bağlantı içerse bile tarayıcı bunun yerine otomatik olarak güvenli sürümü kullanır.
HTTPS'ye geçemezsem ne olur?
Kullanıcılarınızı korumak için sitenizi tamamen HTTPS'ye geçirmenizi önemle tavsiye ederiz. Bunu kendiniz yapamıyorsanız bu seçeneği sunup sunamayacaklarını öğrenmek için barındırma sağlayıcınızla görüşmenizi öneririz. Kendi kendinize barındırma yapıyorsanız Let's Encrypt, sertifika yüklemek ve yapılandırmak için çeşitli araçlar sağlar. Ayrıca, sitenizi HTTPS bağlantısı sağlayabilecek bir CDN'nin veya başka bir proxy'nin arkasına taşımayı da deneyebilirsiniz.
Bu işlemler sorunu çözmediyse etkilenen çerezlerdeki SameSite
korumasını gevşetmeyi deneyin.
- Yalnızca
SameSite=Strict
çerezlerinin engellendiği durumlarda korumayıLax
olarak 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
olarak düşürebilirsiniz.- Çerez gönderdiğiniz (veya çerezleri ayarladığınız) URL güvenli değilse bu geçici çözüm başarısız olur. Bunun nedeni,
SameSite=None
özelliğinin çerezlerdeSecure
özelliğini gerektirmesidir. Bu da söz konusu çerezlerin güvenli olmayan bir bağlantı üzerinden gönderilemeyeceği veya ayarlanamayacağını gösterir. Bu durumda, siteniz HTTPS'ye yükseltilmediği sürece söz konusu çereğe erişemezsiniz. - Üçüncü taraf çerezleri tamamen kullanımdan kaldırılacağından bunun yalnızca geçici bir çözüm olduğunu unutmayın.
- Çerez gönderdiğiniz (veya çerezleri ayarladığınız) URL güvenli değilse bu geçici çözüm başarısız olur. Bunun nedeni,
SameSite
özelliğini belirtmediysem bu değişiklik çerezlerimi nasıl etkiler?
SameSite
özelliği olmayan çerezler, SameSite=Lax
belirtilmiş gibi değerlendirilir ve bu çerezler için de aynı şema dışı davranış geçerli olur. Güvenli olmayan yöntemler için geçici istisnanın geçerliliğini koruduğunu unutmayın. Daha fazla bilgi için Chromium SameSite
SSS'deki Lax + POST azaltma bölümüne bakın.
WebSocket'ler nasıl etkilenir?
WebSocket bağlantıları, sayfayla aynı güvenlik düzeyine sahipse aynı site olarak kabul edilir.
Aynı site:
https://
adlı kullanıcıdanwss://
bağlantısıhttp://
adlı kullanıcıdanws://
bağlantısı
Siteler arası:
http://
adlı kullanıcıdanwss://
bağlantısıhttps://
adlı kullanıcıdanws://
bağlantısı
Fotoğraf: Unsplash'taki Julissa Capdevilla