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

Maud Nalpas
Maud Nalpas

Başlamadan önce:

  • "Site" ve "kaynak" arasındaki farktan emin değilseniz "Aynı site" ve "aynı kaynak" kavramlarını anlama başlıklı makaleyi inceleyin.
  • Spesifikasyondaki orijinal yazım hatası nedeniyle Referer üstbilgisinde R harfi eksik. JavaScript ve DOM'daki Referrer-Policy üstbilgisi ve referrer doğru yazılmış.

Özet

  • Tarayıcılar, bir web sitesinde politika ayarlanmadığında iyi bir yedek sağlamak için gizliliği artıran varsayılan yönlendiren politikalarına doğru gelişiyor.
  • Chrome, 85 sürümünde strict-origin-when-cross-origin'ı varsayılan politika olarak kademeli şekilde etkinleştirmeyi planlıyor. Bu durum, başka bir kaynaktan gelen yönlendiren değerine dayanan kullanım alanlarını etkileyebilir.
  • Bu yeni varsayılan ayardır ancak web siteleri istedikleri politikayı seçmeye devam edebilir.
  • Chrome'da değişikliği denemek için chrome://flags/#reduced-referrer-granularity adresindeki flag'i etkinleştirin. Değişikliği uygulamada görmek için bu demoya da göz atabilirsiniz.
  • Tarayıcıların yönlendirenlerle ilgili tutumu, yönlendiren politikası dışında da değişebilir. Bu nedenle, bu konuyu takip etmeye devam edin.

Neler değişiyor ve neden?

HTTP istekleri, isteğin yapıldığı kaynağı veya web sayfası URL'sini belirten isteğe bağlı Referer başlığını içerebilir. Referer-Policy başlığı, Referer başlığında, navigasyonda ve hedefteki document.referrer öğesindeki iFrame'lerde hangi verilerin kullanılabileceğini tanımlar.

Sitenizden gelen bir istekteki Referer üstbilgisinde hangi bilgilerin gönderileceği, ayarladığınız Referrer-Policy üstbilgisi tarafından belirlenir.

Şema: İstekte gönderilen yönlendiren.
Yönlendirme Politikası ve Yönlendiren.

Politika ayarlanmadığında tarayıcının varsayılan değeri kullanılır. Web siteleri genellikle tarayıcının varsayılan ayarını kullanır.

Gezinmeler ve iFrame'ler için Referer üstbilgisinde bulunan verilere document.referrer kullanılarak JavaScript üzerinden de erişilebilir.

Yakın zamana kadar, no-referrer-when-downgrade tarayıcılarda yaygın bir varsayılan politika olarak kullanılıyordu. Ancak artık birçok tarayıcı, gizliliği daha fazla artıran varsayılan ayarlara geçişin bir aşamasında.

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

Bu, web siteniz için herhangi bir politika ayarlanmamışsa Chrome'un varsayılan olarak strict-origin-when-cross-origin kullanacağı anlamına gelir. İstediğiniz politikayı ayarlamaya devam edebileceğinizi unutmayın. Bu değişiklik yalnızca politika ayarlanmamış web sitelerini etkiler.

Bu değişiklik ne anlama geliyor?

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

Bu, tam URL'nin diğer bölümlerinden (ör. yol ve sorgu dizesi) erişilebilen özel verilerin sızmasını önler.

Şema: Yönlendiren, politikaya bağlı olarak çapraz kaynak isteği için gönderildi.
Politikaya bağlı olarak, kaynaklar arası istek için yönlendiren gönderildi (ve document.referrer).

Ö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: Referer: https://site-one.example/stuff/detail?tag=red.
  • strict-origin-when-cross-origin ile: Referer: https://site-one.example/.

Neler aynı kalacak?

  • no-referrer-when-downgrade gibi, strict-origin-when-cross-origin de güvenlidir: İstek, HTTPS kaynaklı (güvenli) bir yerden HTTP kaynaklı (güvenli olmayan) bir yere yapıldığında yönlendiren yok (Referer üstbilgisi ve document.referrer) olur. Bu sayede, web siteniz HTTPS kullanıyorsa (kullanmıyorsa bu konuya öncelik verin) web sitenizin URL'leri HTTPS dışı isteklerde sızmaz. Çü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ı kaynakta, Referer başlık değeri tam URL'dir.

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

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

Etkisi nedir?

Diğer tarayıcılarla yapılan görüşmeler ve Chrome 84'te Chrome'un kendi denemeleri temel alındığında, kullanıcıların görebileceği bozulmaların sınırlı olması bekleniyor.

Tam yönlendiren URL'nin kullanılabilir olmasına dayanan sunucu tarafı günlük kaydı veya analizler, bu bilgilerdeki ayrıntı düzeyinin azalmasından etkilenir.

Ne yapmanız gerekiyor?

Chrome, yeni varsayılan yönlendiren politikasını 85 sürümünde (Temmuz 2020'de beta, Ağustos 2020'de kararlı sürüm) kullanıma sunmaya başlayacak. Durumu Chrome durum girişinde görebilirsiniz.

Değişikliği anlama ve algılama

Yeni varsayılan değişikliklerin uygulamada ne anlama geldiğini anlamak için bu demoya göz atabilirsiniz.

Çalıştırdığınız Chrome örneğinde hangi politikanın uygulandığını tespit etmek için bu demoyu da kullanabilirsiniz.

Değişikliği test edin ve sitenizi etkileyip etkilemeyeceğini öğrenin.

Değişikliği Chrome 81'den itibaren deneyebilirsiniz: Chrome'da chrome://flags/#reduced-referrer-granularity adresini ziyaret edin ve flag'i 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'da ekran görüntüsü: chrome://flags/#reduced-referrer-granularity işaretini etkinleştirme
İşaret etkinleştiriliyor.

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

Etkiyi tespit etmek için yapılması gereken bir diğer işlem de web sitenizin kod tabanının yönlendireni kullanıp kullanmadığını kontrol etmektir. Bu kontrol, sunucudaki gelen isteklerin Referer üst bilgisi aracılığıyla veya JavaScript'teki document.referrer aracılığıyla yapılabilir.

Sitenize başka bir kaynaktan gelen isteklerin yönlendirenini (daha spesifik olarak yol ve/veya sorgu dizesi) kullanıyorsanız VE bu kaynak tarayıcının varsayılan yönlendiren politikasını kullanıyorsa (yani politika ayarlanmamışsa) sitenizdeki belirli özellikler bozulabilir veya farklı şekilde davranabilir.

Bu durum sitenizi etkiliyorsa alternatifleri değerlendirin.

Yönlendireni kullanarak sitenize yapılan isteklerin tam yoluna veya sorgu dizesine erişiyorsanız birkaç seçeneğiniz vardır:

  • CSRF korumanız, günlük kaydınız ve diğer kullanım alanlarınız için Origin ve Sec-fetch-Site gibi alternatif teknikler ve başlıklar kullanın. Yönlendiren ve Yönlendiren Politikası: en iyi uygulamalar başlıklı makaleyi inceleyin.
  • Gerekirse ve kullanıcılarınız için şeffafsa belirli bir politika konusunda iş ortaklarınızla uyum sağlayabilirsiniz. Yönlendiren, web siteleri tarafından kaynaklarına diğer kaynaklardan erişim izni vermek için kullanıldığında erişim kontrolü söz konusu olabilir. Ancak Chrome'daki değişiklik nedeniyle kaynak, Referer üstbilgisinde (ve document.referrer içinde) paylaşılmaya devam edecektir.

Çoğu tarayıcının yönlendiren konusunda benzer bir yaklaşım benimsediğini unutmayın (Tarayıcı varsayılanları ve bunların Yönlendiren ve Yönlendiren-Politikası: En iyi uygulamalar'daki gelişimleri bölümüne bakın).

Sitenizde açık ve gizliliği artıran bir politika uygulayın

Web siteniz tarafından başlatılan isteklerde hangi Referer gönderilmelidir? Örneğin, siteniz için hangi politikayı ayarlamalısınız?

Chrome'un değişikliğini göz önünde bulundurarak strict-origin-when-cross-origin gibi açık ve gizliliği artıran bir politika belirlemeniz veya daha katı bir politika uygulamanız iyi bir fikirdir.

Bu, kullanıcılarınızı korur ve web sitenizin tarayıcılarda daha öngörülebilir şekilde davranmasını sağlar. Çoğu durumda, sitenizin tarayıcı varsayılanlarına bağlı olması yerine kontrolü size verir.

Politika ayarlama hakkında ayrıntılı bilgi için Yönlendiren ve yönlendiren politikası: en iyi uygulamalar başlıklı makaleyi inceleyin.

Chrome Enterprise hakkında

Chrome kurumsal politikası ForceLegacyDefaultReferrerPolicy kurumsal ortamlarda önceki varsayılan yönlendiren politikası olan no-referrer-when-downgrade'ı zorunlu kılmak isteyen BT yöneticileri tarafından kullanılabilir. Bu sayede kuruluşlar, uygulamalarını test etmek ve güncellemek için ek süre kazanır.

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

Geri bildirim gönder

Paylaşmak istediğiniz bir geri bildiriminiz veya bildirmek istediğiniz bir konu var mı? Chrome'un gönderme amacı hakkında geri bildirim paylaşın veya sorularınızı @maudnals adresine tweet olarak gönderin.

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

Kaynaklar