Chrome için yeni bir varsayılan Yönlendirme Politikası - strict-origin-when-cross-origin

Maud Nalpas
Maud Nalpas

Başlamadan önce:

  • "Site" ile "origin" arasındaki farktan emin değilseniz "same-site" ve "same-origin"i anlama başlıklı makaleye göz atın.
  • Spesifikasyondaki orijinal bir yazım hatası nedeniyle Referer başlığında R eksik. JavaScript ve DOM'de Referrer-Policy ve referrer doğru yazılmış.

Özet

  • Tarayıcılar, bir web sitesinde politika belirlenmemiş olsa bile iyi bir yedek sağlamak için gizliliği artıran varsayılan yönlendirme politikalarına yöneliyor.
  • Chrome, 85 sürümünde varsayılan politika olarak strict-origin-when-cross-origin politikasını kademeli olarak etkinleştirmeyi planlamaktadır. Bu durum, başka bir kaynaktan yönlendiren değerine bağlı kullanım alanlarını etkileyebilir.
  • Bu yeni varsayılan ayardır ancak web siteleri tercih ettikleri politikayı seçebilir.
  • Chrome'daki değişikliği denemek için chrome://flags/#reduced-referrer-granularity adresinden bayrağı etkinleştirin. Ayrıca bu demoyu inceleyerek değişikliği uygulamalı olarak görebilirsiniz.
  • Yönlendiren politikasının ötesinde, tarayıcıların yönlendirenleri ele alma şekli değişebilir. Bu nedenle buna dikkat edin.

Neler değişiyor ve neden?

HTTP istekleri, isteğin yapıldığı kaynak veya web sayfası URL'sini belirten isteğe bağlı Referer başlığını içerebilir. Referer-Policy üst bilgisi, Referer başlığında ve hedefin document.referrer öğesinde gezinme ve iframe'ler için hangi verilerin kullanılabilir hale getirileceğini tanımlar.

Sitenizden yapılan bir istekte Referer başlığında tam olarak hangi bilgilerin gönderildiği, belirlediğiniz Referrer-Policy başlığı tarafından belirlenir.

Şema: Yönlendiren, bir istekte gönderilmiştir.
Yönlendiren-Politika ve Yönlendiren.

Herhangi bir politika ayarlanmazsa tarayıcının varsayılanı kullanılır. Web siteleri genellikle tarayıcının varsayılan ayarına uyar.

Gezinmeler ve iframe'ler için Referer başlığında bulunan verilere document.referrer kullanılarak JavaScript aracılığıyla da erişilebilir.

no-referrer-when-downgrade, yakın zamana kadar tüm tarayıcılarda yaygın olarak kullanılan bir varsayılan politikaydı. Ancak şu anda birçok tarayıcı, gizliliği daha iyi hale getiren varsayılan ayarlara geçme sürecinde.

Chrome, 85 sürümünden itibaren varsayılan politikasını no-referrer-when-downgrade yerine strict-origin-when-cross-origin olarak değiştirmeyi planlamaktadır.

Bu, web siteniz için bir politika ayarlanmamışsa Chrome'un varsayılan olarak strict-origin-when-cross-origin kullanacağı anlamına gelir. İstediğiniz politikayı yine de ayarlayabileceğinizi unutmayın; bu değişiklik yalnızca politikası ayarlanmamış web siteleri üzerinde etkili olacaktır.

Bu değişiklik ne anlama geliyor?

strict-origin-when-cross-origin daha fazla gizlilik sunar. Bu politika ile, kaynaklar arası isteklerin Referer başlığında yalnızca kaynak gönderilir.

Bu, tam URL'nin yol ve sorgu dizesi gibi diğer bölümlerinden erişilebilen gizli verilerin sızdırılmasını önler.

Şema: Yönlendiren, politikaya bağlı olarak kaynaklar arası istek için gönderilir.
Politikaya bağlı olarak, kaynaklar arası istek için referans tarafından gönderilen (ve document.referrer) kullanılır.

Örneğin:

https://site-one.example/stuff/detail?tag=red adresinden https://site-two.example/... adresine gönderilen kaynaklar arası istek:

  • no-referrer-when-downgrade ile: Yönlendiren: https://site-one.example/stuff/detail?tag=red.
  • strict-origin-when-cross-origin ile: Yönlendiren: https://site-one.example/.

Neler aynı kalır?

  • no-referrer-when-downgrade gibi strict-origin-when-cross-origin da güvenlidir: İstek bir HTTPS kaynağından (güvenli) HTTP kaynağına (güvenli değil) yapıldığında yönlendiren (Referer üst bilgisi ve document.referrer) mevcut değildir. Bu şekilde, web siteniz HTTPS kullanıyorsa (kullanılmıyorsa öncelikli hale getirin) web sitenizin URL'leri HTTPS dışı isteklerde sızdırılmaz. Çünkü ağdaki herkes bunları görebilir ve bu durum, kullanıcılarınızı ortadaki adam saldırılarına maruz bırakır.
  • Aynı kaynak içinde Referer üstbilgisi değeri tam URL'dir.

Örneğin: https://site-one.example/stuff/detail?tag=red adresinden https://site-one.example/... adresine gönderilen aynı kaynaklı istek:

  • strict-origin-when-cross-origin ile: Yönlendiren: https://site-one.example/stuff/detail?tag=red

Etkisi nedir?

Diğer tarayıcılarla yapılan tartışmalara ve Chrome'un Chrome 84'te yaptığı kendi denemesine dayanarak, kullanıcının görebildiği kesintilerin sınırlı olması bekleniyor.

Kullanılabilir tam yönlendiren URL'ye dayanan sunucu tarafı günlük kayıtları veya analizler, bu bilgilerdeki düşük ayrıntı düzeyinden etkilenebilir.

Ne yapmanız gerekiyor?

Chrome, yeni varsayılan yönlendiren politikasını 85'te (beta için Temmuz 2020, kararlı sürüm için Ağustos 2020) kullanıma sunmayı planlamaktadır. Durumu Chrome durum girişinde görebilirsiniz.

Değişikliği anlama ve tespit etme

Uygulamadaki yeni varsayılan değişiklikleri anlamak için bu demoya göz atabilirsiniz.

Bu demoyu, çalıştırdığınız Chrome örneğinde hangi politikanın uygulandığını tespit etmek için de kullanabilirsiniz.

Değişikliği test edip bu değişikliğin sitenizi etkileyip etkilemeyeceğini belirleyin

Chrome 81'den itibaren bu değişikliği hemen deneyebilirsiniz: Chrome'da chrome://flags/#reduced-referrer-granularity adresini ziyaret edin ve bayrağı etkinleştirin. Bu işaret etkinleştirildiğinde, politikası olmayan tüm web siteleri yeni strict-origin-when-cross-origin varsayılanını kullanır.

Chrome ekran görüntüsü: chrome://flags/#reduced-referrer-granularity işaretini nasıl etkinleştirebilirsiniz?
İşareti etkinleştirme.

Artık web sitenizin ve arka ucunuzun nasıl davrandığını kontrol edebilirsiniz.

Etkiyi tespit etmek için yapılacak bir diğer şey, web sitenizin kod tabanının yönlendireni kullanıp kullanmadığını kontrol etmektir. Bu, sunucudan gelen isteklerin Referer üst bilgisi veya JavaScript'teki document.referrer parametresidir.

Başka bir kaynaktan sitenize gelen istekleri yönlendireni (daha özel olarak yol ve/veya sorgu dizesi) kullanıyorsanız VE bu kaynak, tarayıcının varsayılan yönlendiren politikasını kullanıyorsa (politika ayarlanmamışsa) sitenizdeki belirli özellikler bozulabilir veya farklı davranabilir.

Bu durum sitenizi etkiliyorsa alternatifleri düşünün

Sitenize yapılan isteklere ilişkin tam yola veya sorgu dizesine erişmek için yönlendireni kullanıyorsanız birkaç seçeneğiniz vardır:

  • CSRF koruması, günlük kaydı ve diğer kullanım alanlarınız için Origin ve Sec-fetch-Site gibi alternatif teknikler ve başlıklar kullanın. Referer and Referrer-Policy: En iyi uygulamalar başlıklı makaleye göz atın.
  • Gerekirse belirli bir politika üzerinde iş ortaklarıyla uyumlu bir şekilde görüşebilir ve kullanıcılarınız için şeffaf davranabilirsiniz. Erişim kontrolü (yönlendiren, web siteleri tarafından kendi kaynaklarına diğer kaynaklara belirli erişim izni vermek için kullanıldığında) bu tür bir durum söz konusu olabilir. Ancak Chrome'un değişikliğiyle birlikte kaynak, Referer Başlığında (ve document.referrer) paylaşılmaya devam eder.

Yönlendiren konusunda çoğu tarayıcının benzer bir yönde ilerlediğini unutmayın (Referer and Referrer-Policy: best Practices (Referans ve Yönlendiren Politikası: En iyi uygulamalar) bölümünde tarayıcı varsayılanları ve bunların evrimleri bölümüne bakın.

Siteniz genelinde açık ve gizliliği artıran bir politika uygulama

Web siteniz tarafından kaynaklanan isteklerde hangi Referer gönderilmelidir. Yani siteniz için hangi politikayı ayarlamanız gerekir?

Chrome'un değişikliği aklında olsa bile şu anda strict-origin-when-cross-origin gibi açıkça ve gizliliği artıran bir politika belirlemek iyi bir fikirdir.

Bu, kullanıcılarınızı korur ve web sitenizin tarayıcılar arasında daha tahmin edilebilir şekilde davranmasını sağlar. Çoğunlukla, sitenizin tarayıcı varsayılanlarına bağlı olması yerine size kontrol sağlar.

Politika ayarlamayla ilgili ayrıntılar için Yönlendiren ve Yönlendiren-Politika: en iyi uygulamalar sayfasını inceleyin.

Chrome Enterprise hakkında

Chrome kurumsal politikası ForceLegacyDefaultReferrerPolicy, kurumsal ortamlarda önceki varsayılan yönlendiren politikasını (no-referrer-when-downgrade) zorunlu kılmak isteyen BT yöneticileri tarafından kullanılabilir. Bu sayede kurumlar, uygulamalarını test etmek ve güncellemek için ek zaman kullanabilir.

Bu politika, Chrome 88 sürümünde kaldırılacaktır.

Geri bildirim gönderin

Paylaşmak veya bildirmek istediğiniz bir şey var mı? Chrome'un gönderim amacı ile ilgili geri bildirimlerinizi paylaşın veya sorularınızı @maudnals adresine tweet atarak gönderin.

Tüm yorumculara, özellikle Kaustubha Govind, David Van Cleve, Mike West, Sam Dutton, Rowan Merewood, Jxck ve Kayce Basques başta olmak üzere tüm yorumculara katkıları ve geri bildirimleri için çok teşekkür ederiz.

Kaynaklar