"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 yükseltin 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
about://flags/#schemeful-same-siteseçeneğini etkinleştirin. Chrome Durumu sayfasından ilerlemeyi takip edin. - Firefox 79'dan itibaren
network.cookie.sameSite.schemefuldeğerinitrueolarak 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. Diğer bir deyişle, SameSite=Strict çerezleri engellenir.
| 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ş için ç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.
| 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.
| 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. Sonraki 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ğinden 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ıLaxolarak düşürebilirsiniz. - Hem
Stricthem deLaxçerezlerinin engellendiği ve çerezlerinizin güvenli bir URL'ye gönderildiği (veya güvenli bir URL'den ayarlandığı) durumlarda korumalarıNoneolarak 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 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 SameSitesoru-cevap sayfasında 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: Julissa Capdevilla, Unsplash