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'dakiReferrer-Policyüstbilgisi vereferrerdoğ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-granularityadresindeki 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.
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.
Örneğin:
https://site-one.example/stuff/detail?tag=red adresinden https://site-two.example/… adresine gönderilen kaynaklar arası istek:
no-referrer-when-downgradeile: Referer: https://site-one.example/stuff/detail?tag=red.strict-origin-when-cross-originile: Referer: https://site-one.example/.
Neler aynı kalacak?
no-referrer-when-downgradegibi,strict-origin-when-cross-originde güvenlidir: İstek, HTTPS kaynaklı (güvenli) bir yerden HTTP kaynaklı (güvenli olmayan) bir yere yapıldığında yönlendiren yok (Refererüstbilgisi vedocument.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,
Refererbaş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-originile: 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.
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
OriginveSec-fetch-Sitegibi 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 (vedocument.referreriç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.