Informasi ini ditujukan bagi developer yang memiliki aplikasi dengan Kerentanan Injeksi Antarmuka JavaScript.
Yang terjadi
Silakan lihat pemberitahuan di Play Console Anda. Setelah batas waktu yang ditampilkan di Play Console, aplikasi apa pun yang memiliki kerentanan keamanan yang belum diperbaiki akan dihapus dari Google Play.
Tindakan yang diperlukan
- Login ke Play Console, dan buka bagian Notifikasi untuk melihat aplikasi mana yang terpengaruh dan batas waktu untuk menyelesaikan masalah ini.
- Update aplikasi yang terpengaruh dan perbaiki kerentanannya.
- Kirimkan versi terupdate aplikasi Anda yang terpengaruh.
Setelah pengiriman ulang, aplikasi Anda akan ditinjau kembali. Proses ini dapat memerlukan waktu beberapa jam. Jika aplikasi lolos dari proses peninjauan dan dipublikasikan, Anda tidak perlu melakukan tindakan lebih lanjut. Jika aplikasi gagal dalam proses peninjauan, versi aplikasi baru tidak akan dipublikasikan dan Anda akan menerima email notifikasi.
Detail tambahan
WebView yang mengekspos objek level aplikasi ke kode JavaScript melalui addJavascriptInterface, dan yang memuat konten web tidak tepercaya, akan rentan terhadap Injeksi Antarmuka JavaScript. Konten tidak tepercaya dapat menjalankan metode pada objek terekspos yang dianotasikan dengan @JavascriptInterface, sehingga berpotensi mengakibatkan kebocoran data, kerusakan data, atau bahkan eksekusi kode arbitrer.
Sebaiknya cegah kerentanan ini dengan melakukan salah satu cara berikut:
Opsi 1: Pastikan WebView tidak menambahkan Objek ke antarmuka JavaScript
Pastikan tidak ada objek yang ditambahkan ke antarmuka JavaScript untuk WebView apa pun yang memuat konten web tidak tepercaya. Anda dapat melakukannya dengan dua cara:
Pastikan tidak ada objek yang ditambahkan ke antarmuka JavaScript melalui panggilan ke addJavascriptInterface.
-
Hapus objek dari antarmuka JavaScript di shouldInterceptRequest melalui removeJavascriptInterface sebelum konten tidak tepercaya dimuat oleh WebView.
Opsi 2: Pastikan WebView tidak memuat konten web tidak tepercaya
Jika aplikasi Anda perlu mengekspos objek ke antarmuka JavaScript dari WebView, pastikan WebView tidak memuat konten web melalui sambungan yang tidak terenkripsi. Anda dapat menetapkan android:usesCleartextTraffic ke false dalam Manifest Anda atau menetapkan Network Security Config yang melarang traffic HTTP. Selain itu, Anda juga dapat memastikan bahwa setiap WebView yang terpengaruh tidak memuat URL dengan skema HTTP melalui loadUrl.
Pastikan WebView dengan antarmuka JavaScript tidak memuat URL yang belum diperiksa yang diperoleh dari sumber tidak tepercaya (misalnya URL yang diperoleh dari Intent tidak tepercaya).
Kami siap membantu
Jika ada pertanyaan teknis lainnya, Anda dapat mengirim postingan ke Stack Overflow dan menggunakan tag “android-security”. Untuk penjelasan mengenai langkah-langkah yang diperlukan guna mengatasi masalah ini, Anda dapat menghubungi tim dukungan developer.