Cara memperbaiki kerentanan Injeksi Fragmen

Informasi ini ditujukan bagi pengembang dengan aplikasi yang menggunakan penerapan kelas PreferenceActivity tidak aman, yang membuat kelas rentan terhadap Injeksi Fragmen. Penerapan semacam ini dapat memungkinkan aplikasi eksternal berbahaya untuk memuat Fragmen yang seharusnya bersifat pribadi.

Yang terjadi

Mulai tanggal 1 Maret 2017, Google Play memblokir publikasi aplikasi baru atau update yang memungkinkan kelas PreferenceActivity memiliki kerentanan terhadap Injeksi Fragmen. Lihat pemberitahuan di Konsol Play Anda. Setelah tenggat waktu yang ditampilkan di Konsol Play, aplikasi apa pun dengan kerentanan keamanan yang belum diperbaiki akan dihapus dari Google Play.

Tindakan yang diperlukan​

  1. Login ke Konsol Play Anda, lalu buka bagian Notifikasi untuk melihat aplikasi yang terpengaruh dan tenggat waktu untuk mengatasi masalah ini.
  2. Update aplikasi yang terpengaruh dan perbaiki kerentanannya.
  3. Kirimkan versi terupdate aplikasi yang terpengaruh.

Setelah pengiriman ulang, aplikasi Anda akan ditinjau kembali. Proses ini dapat memerlukan waktu beberapa jam. Jika aplikasi berhasil melewati peninjauan dan dipublikasikan, Anda tidak perlu melakukan tindakan lebih lanjut. Jika aplikasi gagal ditinjau, versi aplikasi baru tidak akan dipublikasikan dan Anda akan menerima pemberitahuan via email.

Detail tambahan

Jika memungkinkan, setel exported=false untuk PreferenceActivity di Manifest Anda. Tindakan ini akan mencegah aplikasi asing agar tidak mengirimkan Intent ke kelas ini.

Jika PreferenceActivity yang rentan harus diekspor ke aplikasi asing, pelajari penyebab kerentanan kelas dan lakukan tindakan yang sesuai. Ada dua kemungkinan:

  1. Penerapan isValidFragment tidak tepat:

Periksa apakah kelas yang rentan berisi atau mewarisi penerapan dari isValidFragment yang menampilkan nilai true di semua jalur kode. Jika hal ini adalah penyebabnya, perbarui kelas untuk memeriksa daftar kelas Fragmen yang diizinkan. Misalnya: Jika PreferenceActivity mengizinkan kelas MyFragment saja, terapkan pemeriksaan seperti ini:

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

         }

  1. targetSdkVersion kurang dari 19 dan tidak menerapkan isValidFragment:

Jika aplikasi masih menetapkan targetSdkVersion di manifes dengan nilai kurang dari 19 dan kelas yang rentan tidak berisi penerapan apa pun dari isValidFragment, berarti kerentanannya berasal dari PreferenceActivity.

Untuk memperbaikinya, pengembang harus memperbarui targetSdkVersion ke 19 atau yang lebih tinggi. Selain itu, jika targetSdkVersion tidak dapat diupdate, developer harus menerapkan isValidFragment seperti yang dijelaskan di 1) untuk memeriksa kelas fragmen yang diizinkan.

Perhatikan bahwa aplikasi harus mematuhi Perjanjian Distribusi Developer dan Kebijakan Konten

Kami siap membantu

Jika ada pertanyaan teknis tentang kerentanan, Anda dapat mengirim postingan ke Stack Overflow dan menggunakan tag “android-security”. Untuk penjelasan tentang langkah-langkah yang diperlukan guna mengatasi masalah ini, Anda dapat menghubungi tim dukungan developer.

Apakah ini membantu?
Bagaimana cara meningkatkannya?