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

Chrome, güvenli olmayan kaynaklarda coğrafi konum gibi güçlü özellikleri kullanımdan kaldırmak için herkese açık bir amaca hizmet etmektedir. Diğerlerinin de bu sürece devam edeceğini umuyoruz.

Chrome 50'den itibaren Chrome artık güvenli olmayan bağlantılar tarafından yayınlanan sayfalardan HTML5 Coğrafi Konum API'sini kullanarak kullanıcının konumunu almayı desteklemiyor. Diğer bir deyişle, Coğrafi Konum API çağrısını yapan sayfanın HTTPS gibi güvenli bir bağlamdan sunulması gerekir.

Bu, coğrafi konum API'si kullanılmasını gerektiren ve https üzerinden sunulmayan tüm siteleri doğrudan etkilediğinden, ancak web'deki tüm kullanıcılar için yararlı olduğuna inandığımız bir değişiklik olduğundan önemli bir sorundur. Bu gönderi, kanalınızın mantığını ve nasıl ilerleyeceğinizi anlamanıza yardımcı olacak.

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

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

Chrome'un geliştirici araçları konsolu, 21 Temmuz 2015'te yayınlanan 44 sürümünden bu yana uyarılar almaktadır.
Bu değişikliği yapmamızın gerekçesini (ve tartışmasını) açıklayan bir dizi herkese açık duyuru yapıldı:

Buna dikkat çeken bir dizi başka kaynak da mevcuttur: 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'nin zorunlu kılınması gerekir. Kullanıcının konumuna güvenli olmayan bir bağlamdan ulaşılabiliyorsa, ağdaki saldırganlar söz konusu kullanıcının nerede olduğunu bilebilir. Bu durum, kullanıcı gizliliğini ciddi şekilde tehlikeye atmaktadır.

Bu kimleri etkiliyor?

Bu durum, HTTP (güvenli değil) üzerinden sunulan sayfalardan Coğrafi Konum API'sini kullanan tüm sayfaları etkiler. Ayrıca, HTTP sayfalarına yerleştirilmişlerse Coğrafi Konum API'sini kullanan HTTPS iframe'leri de etkilenir. (HTTPS tarafından sağlanan paylaşılan çerçeveyi kullanarak çoklu dolgu yapamazsınız.)

Tüm web uygulamamın HTTPS'ye ihtiyacı var mı?

Coğrafi Konum'u kullanmak için uygulamanın tamamının HTTPS aracılığıyla sunulması zorunlu değildir. Yalnızca Coğrafi Konum kullanan sayfaların güvenli bir bağlam üzerinden sunulması gerekir. Şu anda HTTPS veya localhost'ta en üst düzeyde barındırılan her şey, güvenli bağlamdır. Örneğin, güvenli bir kaynağı işaret eden 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üçlü yeni ve mevcut tarayıcı özellikleri güvenli kaynaklar gerektirdiğinden bunları HTTPS'ye taşımanızı önemle tavsiye ederiz.

Bu durum yerel gelişimi etkiler mi?

Olmaması gerekir. Bu örnekte localhost'un "potansiyel olarak güvenli" olduğu belirtilmiş ve bizim durumumuzda localhost üzerinden üst düzeyde sunulan coğrafi konum istekleri çalışmaya devam eder.

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

Evet. Coğrafi konum spesifikasyonu, Coğrafi Konum API'lerinin hata geri çağırmasına aktarılan bir PositionError nesnesini tanımlar. Nesne bir code ve message özelliğini tanımlar.

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

Bu durum ileride değişebileceği için oldukça zorlayıcı olabilir. Ancak "Yalnızca güvenli kaynaklara izin verilir" dizesini aramak, bunun güvenli olmayan bir içerik sorunu olduğuna dair güçlü bir işarettir.

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

Unutmayın, sayfanız https'de değil, güvenli olmayan bir bağlamda barındırılan bir iframe'de de olabileceğinden sayfanın kaynağını kontrol edemezsiniz.

Coğrafi Konum uygulamasını gerçekten kullanmam gerekiyor. Ne yapmalıyım?

HTML5 Coğrafi Konum API'sini kullanmak isterseniz veya sitenizde zaten Coğrafi Konum API'si kullanılıyorsa lütfen Coğrafi Konum API'si ç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 bu değişiklikten etkilenmeyen konumunu bulmak için, Google Haritalar Coğrafi Konum API'si, GeoIP (örneğin, coğrafi konuma dayalı başka çözümler vardır) ve kullanıcı tarafından girilen bir posta kodu gibi bir dizi yedek seçenek bulunmaktadır. Ancak coğrafi konuma sürekli erişim sağlamanın en iyi yolunun HTTPS'ye geçmek olmasını önemle tavsiye ederiz.