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'deReferrer-Policy
vereferrer
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.
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.
Ö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
gibistrict-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 vedocument.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.
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
veSec-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 (vedocument.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.