Chrome 50'de güvenli olmayan kaynaklardan coğrafi konum API'si kaldırıldı

Paul Kinlan
Paul Kinlan

Chrome'un, güvenli olmayan kaynaklarda coğrafi konum gibi güçlü özellikleri kullanımdan kaldırmak için herkese açık bir niyeti vardır ve bunu başkalarının da yapacağını umuyoruz.

Chrome 50 sürümünden itibaren Chrome, güvenli olmayan bağlantıların sunduğu sayfalardan HTML5 Coğrafi Konum API'sini kullanarak kullanıcının konumunu alma özelliğini desteklememektedir. Bu, Geolocation API çağrısını yapan sayfanın HTTPS gibi güvenli bir bağlamdan sunulması gerektiği anlamına gelir.

Coğrafi konum API'sini kullanan ve https üzerinden sunulmayan tüm siteleri doğrudan etkileyeceğinden bu önemli bir sorundur, ancak web'deki tüm kullanıcılar için yararlı olduğunu düşündüğümüz bir değişikliktir. Bu gönderi, bu videonun gerekçesini ve nasıl devam etmeniz gerektiğini anlamanıza yardımcı olur.

Bu değişiklik ne zaman yapılacak?

Bu değişiklik, Chrome 50 sürümünden itibaren (20 Nisan 2016 12:00 PST) itibaren geçerlidir.

Chrome'un geliştirici araçları konsolu, 44 sürümünden (21 Temmuz 2015'te yayınlanmıştır) bu yana uyarı vermeye devam etmektedir.
Bu değişikliği yapmamızın gerekçesini (ve tartışmasını) açıklayan bazı kamusal duyurular yapıldı:

Bu durumu öne çıkaran başka kaynaklar da var: Mobiforge (26 Ocak 2016), Wired (17 Mart 2016), VentureBeat (13 Nisan 2016).

Bu değişikliği neden yapıyoruz?

Konum hassas veridir! Kullanıcılarınızın konum verilerinin gizliliğini korumak için HTTPS'yi zorunlu kılmak gereklidir. Kullanıcının konumuna güvenli olmayan bir bağlamdan erişilebiliyorsa, ağdaki saldırganlar bu kullanıcının nerede olduğunu bilebilir. Bu durum, kullanıcı gizliliğini ciddi şekilde tehlikeye atabilir.

Bu kimleri etkiliyor?

Bu durum, HTTP (güvenli olmayan) üzerinden sunulan sayfalardan şu anda Geolocation API'yi kullanan tüm sayfaları etkiler. Ayrıca, HTTP sayfalarına yerleştirilmişse Geolocation API'yi kullanan HTTPS iframe'lerini de etkiler. (HTTPS tarafından sağlanan paylaşılan bir çerçeve kullanarak çoklu dolgu yapamazsınız.)

Web uygulamamın tamamı için HTTPS gerekiyor mu?

Coğrafi Konum'un kullanılması için uygulamanın tamamının HTTPS üzerinden sunulması gerekmez. Yalnızca Coğrafi Konum kullanan sayfaların güvenli bir bağlam üzerinden sunulması gerekir. Şu an için, HTTPS veya localhost'ta üst düzeyde barındırılan her şey güvenli bağlamdır. Örneğin, güvenli bir kaynağa yönlendiren ancak güvenli olmayan kaynakta (http ://paul.kinlan.me/) barındırılan bir iframe'in coğrafi konum API'sini çağırmasına izin verilmez.

Güvenli kaynaklar gereken yeni ve mevcut tarayıcı özellikleri nedeniyle HTTPS'ye geçmenizi önemle tavsiye ederiz.

Bu durum yerel gelişimi etkiler mi?

Burada yerel ana makinenin spesifikasyonda "potansiyel olarak güvenli" olduğu belirtilmiş ve bizim durumumuzda, localhost üzerinden üst düzeyde sunulan coğrafi konum istekleri çalışmaya devam edecektir.

Çalışma zamanında, coğrafi konumun güvenli bir bağlamda olmadığı için engellenip engellenmediğini tespit edebilir miyim?

Evet. Coğrafi konum spesifikasyonu, Geolocation API'lerinin hata geri çağırmasına iletilen bir PositionError nesnesini tanımlar. Nesne, code ve message özelliklerini tanımlar.

Bu güvenli bağlam sorunundan kaynaklanan hatalar, "İzin Reddedildi Hatası" olarak 1 üzerinden code döndürür. Bir kullanıcı erişimi reddettiğinde veya sistem, kullanıcının konumlarına erişimi reddettiğinde bu hatayı alabilirsiniz. Bu durumda, hatanın tam nedenini görmek için mesajı kontrol etmeniz gerekir.

Bu, gelecekte değişebileceği için çok sıkı olmayabilir, ancak "Yalnızca güvenli kaynaklara izin verilir" dizesini bulmak, sorunun güvenli olmayan bir içerik sorunu olduğuna dair güçlü bir sinyaldir.

navigator.geolocation.getCurrentPosition(success => {
    /* Do some magic. */
}, failure => {
    if (failure.message.startsWith("Only secure origins are allowed")) {
    // Secure Origin issue.
    }
});

Sayfanız https'de ancak güvenli olmayan bir bağlamdan barındırılan bir iframe'de olabileceği için sayfanın kaynağını kontrol edemeyeceğinizi unutmayın.

Coğrafi Konum'u kullanmam gerekiyor. Ne yapmalıyım?

HTML5 Geolocation API'yi kullanmak istiyorsanız veya siteniz zaten Geolocation API'yi kullanıyorsa lütfen Geolocation API çağrıları yapan sayfaları HTTPS'ye taşıyın ve bunların güvenli bir bağlamda kullanıldığından emin olun.

Bir kullanıcının konumunu bu değişiklikten etkilenmeyen, Google Haritalar Coğrafi Konum API'si, GeoIP (örnek olarak, coğrafi konuma dayalı başka çözümler vardır) ve kullanıcı tarafından girilen posta kodu gibi çeşitli yedek seçenekleri bulunur. Bununla birlikte, coğrafi konuma sürekli erişimin sağlanması için en iyi yolun HTTPS'ye taşınması kesinlikle önerilir.