Memperbaiki Kerentanan Injeksi SQL

Informasi ini ditujukan bagi developer yang memiliki aplikasi dengan Kerentanan Injeksi SQL.

Apa yang terjadi

Satu atau beberapa aplikasi Anda memiliki kerentanan Injeksi SQL yang harus diperbaiki. 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​

  1. Login ke Play Console, dan buka bagian Notifikasi untuk melihat aplikasi mana yang terpengaruh dan batas waktu untuk menyelesaikan masalah ini.
  2. Update aplikasi yang terpengaruh dan perbaiki kerentanannya.
  3. 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

Implementasi query, update, dan delete dalam ContentProviders yang diekspor dapat rentan terhadap Injeksi SQL jika atribut tersebut memberikan input yang bermasalah ke pernyataan SQL. Aplikasi berbahaya dapat memberikan input buatan untuk mengakses data pribadi atau merusak konten database. Anda dapat memperbaiki masalah ini dengan cara berikut:

Jika ContentProvider yang terpengaruh tidak perlu diperlihatkan ke aplikasi lain:

Jika ContentProvider yang terpengaruh harus diperlihatkan ke aplikasi lain:

  • Anda dapat mencegah Injeksi SQL ke SQLiteDatabase.query menggunakan mode strict bersama dengan projection map. Mode strict memberikan perlindungan terhadap klausa pilihan yang berbahaya dan projection map memberikan perlindungan terhadap klausa proyeksi yang berbahaya. Anda harus menggunakan kedua fitur ini untuk memastikan bahwa kueri Anda aman.
  • Anda dapat mencegah injeksi SQL ke SQLiteDatabase.update dan SQLiteDatabase.delete dengan menggunakan klausa pilihan yang menggunakan "?" sebagai parameter yang dapat diganti dan rangkaian argumen pilihan terpisah. Klausa pilihan tidak boleh dibuat dari input yang tidak tepercaya.

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 untuk menyelesaikan masalah ini, Anda dapat menghubungi tim dukungan developer.

Apakah ini membantu?
Bagaimana cara meningkatkannya?