Fragment Yerleştirme güvenlik açığını giderme

Bu bilgi, PreferenceActivity sınıflarının güvenli olmayan bir şekilde kullanıldığı uygulamalara sahip geliştiriciler için hazırlanmıştır. Bu tür güvenli olmayan kullanımlar, Fragment Yerleştirme yapıldığından şüphe edilmesine yol açar. Böyle bir kullanımda kötü amaçlı harici uygulamalar, gizli olması gereken Fragment'ları yükleyebilir.

Neler oluyor?

Google Play, 1 Mart 2017 tarihinden itibaren Fragment Injection'a karşı güvenlik açığı içeren PreferenceActivity sınıflarının kullanıldığı tüm yeni uygulama veya güncellemelerin yayınlanmasını engellemeye başlamıştır. Lütfen Play Console hesabınızdaki bildirime bakın. Play Console hesabınızda gösterilen son tarihlerden sonra, düzeltilmemiş güvenlik açığı içeren tüm uygulamalar Google Play'den kaldırılacaktır.

Yapılması gerekenler​

  1. Play Console hesabınızda oturum açıp Uyarılar bölümüne gidin. Burada hangi uygulamaların etkilendiğini ve bu sorunları çözmeniz gereken son tarihleri görebilirsiniz.
  2. Etkilenen uygulamalarınızı güncelleyin ve güvenlik açığını düzeltin.
  3. Etkilenen uygulamalarınızın güncellenmiş sürümlerini gönderin.

Uygulamanız, yeniden göndermenizin ardından tekrar incelenir. Bu işlem birkaç saat sürebilir. Uygulama incelemeden başarıyla geçerek yayınlanırsa başka bir işleme gerek yoktur. Uygulama incelemede başarısız olursa yeni uygulama sürümü yayınlanmaz ve bir e-posta bildirimi alırsınız.

Ek ayrıntılar

Mümkünse Manifest'inizde PreferenceActivity sınıfı için exported=false olarak ayarlayın. Bu ayar, harici uygulamaların bu sınıfa Amaç göndermesini engeller.

Güvenlik açığı bulunan PreferenceActivity sınıfının harici uygulamalara aktarılması gerekiyorsa, sınıfta neden güvenlik açığı bulunduğunu belirleyip gereken önlemleri alın. Güvenlik açığına yol açan iki olasılık vardır:

  1. isValidFragment işlevinin yanlış bir şekilde uygulanması:

Güvenlik açığı olan sınıfın, tüm kod yolları için doğru sonucunu döndüren isValidFragment işlevine ait kullanımın devralınıp alınmadığını kontrol edin. Böyle bir kullanım varsa sınıfı güncelleyerek izin verilen Fragment sınıflarının listesini kontrol etmesini sağlayın. Ör: PreferenceActivity sınıfı MyFragment sınıfına izin veriyor ve diğer Fragment'lara izin vermiyorsa, aşağıdaki gibi bir kontrol yordamı uygulayın:

         public boolean isValidFragment(String fragmentName) {
            return MyFragment.class.getName().equals(fragmentName);

         }

  1. targetSdkVersion, 19'dan küçük bir değere sahip ve isValidFragment işlevini kullanmıyor:

Uygulama, Manifest'te targetSdkVersion için geçerli olarak 19'dan küçük bir değer kullanıyorsa ve güvenlik açığı olan sınıfta isValidFragment işlevinin herhangi bir kullanımı bulunmuyorsa, güvenlik açığı PreferenceActivity sınıfından devralınmaktadır.

Bu sorunu düzeltmek için targetSDKVersion değerini 19 veya daha yüksek yapmanız gerekir. targetSDKVersion değeri güncellenemiyorsa, geliştiriciler alternatif olarak isValidFragment işlevini 1. maddede açıklandığı şekilde izin verilen Fragment sınıflarını kontrol edecek şekilde uygulamalıdır.

Uygulamaların ayrıca Geliştirici Dağıtım Sözleşmesi ve İçerik Politikası'na uyması gerektiğini unutmayın. 

Yardıma hazırız

Güvenlik açığı hakkında teknik sorularınız varsa sorularınızı Stack Overflow'da yayınlayabilir ve “android-security” etiketini kullanabilirsiniz. Bu sorunu çözmek için uygulamanız gereken adımlarla ilgili bilgi almak isterseniz geliştirici destek ekibimize ulaşabilirsiniz.

Bu size yardımcı oldu mu?

Bunu nasıl iyileştirebiliriz?
false
Ana menü
1944718121333216893
true
Yardım Merkezinde Arayın
true
true
true
true
true
5016068
false
false