Apakah aplikasi iPhone memiliki izin untuk melakukan panggilan tanpa interaksi pengguna?

9

Saya sedang membaca tentang penipuan panggilan tidak terjawab sekarang di mana pengguna akan dikenakan biaya bahkan jika mereka tidak menelepon kembali. Terpikir oleh saya bahwa aplikasi iPhone jahat dapat membuat panggilan ke nomor premium untuk menipu pengguna dari uang - memang, tampaknya ini telah terjadi di masa lalu.

Menurut dokumentasi Apple sendiri :

Ketika pengguna mengetuk tautan telepon di halaman web, iOS menampilkan peringatan yang menanyakan apakah pengguna benar-benar ingin memanggil nomor telepon dan memulai panggilan jika pengguna menerima. Ketika pengguna membuka URL dengan skema tel di aplikasi asli, iOS tidak menampilkan peringatan dan memulai panggilan tanpa lebih lanjut mendorong pengguna.

Tampaknya bagi saya bahwa aplikasi iPhone yang tampaknya jinak dapat, katakanlah, tunggu sampai ponsel dibiarkan menyala (dan karenanya kemungkinan tidak dihadiri oleh pengguna) dan kemudian memulai panggilan ke nomor tingkat premium untuk memberi pengembang bonus bonus yang rapi . Tampaknya tidak ada izin apa pun di iOS yang dapat saya ubah untuk mencegah perilaku ini, karena ini membuka aplikasi ponsel dengan URL daripada mengakses data telepon apa pun.

Adakah yang bisa mengkonfirmasi jika pemahaman saya benar dan, jika demikian, mengapa Apple tidak menutup lubang yang menganga seperti itu?

Cartroo
sumber

Jawaban:

8

Saya telah secara eksperimental memeriksa perilaku iOS dengan mencoba memulai panggilan telepon dari salah satu aplikasi saya.

Inilah hasilnya:

  • Dimungkinkan untuk secara sistematis memulai panggilan telepon tanpa konfirmasi pengguna. Saya baru saja menulis satu baris kode yang dijalankan tepat setelah Aplikasi dimuat. Artinya, jika Aplikasi Anda ada di latar depan, ia dapat memulai panggilan kapan saja, bahkan tanpa perlu pengguna mengetuk di mana pun.
  • Saya telah mengirim pemberitahuan push jarak jauh diam ke Aplikasi untuk membangunkan aplikasi itu jika tidak berjalan, dan kemudian jalankan kode yang sama. Tidak ada panggilan yang dimulai; iOS tidak mengizinkan aplikasi memulai panggilan telepon jika aplikasi berjalan di latar belakang.

Jadi, menjawab pertanyaan Anda, satu-satunya cara untuk memulai panggilan telepon tanpa disadari oleh pengguna, adalah dengan cara meyakinkan pengguna untuk membiarkan aplikasi jahat berjalan di latar depan, dan kemudian memulai panggilan telepon, karena iOS tidak akan mengizinkan operasi ini jika aplikasi di latar belakang.

Saat ini iOS tidak menyediakan mekanisme apa pun untuk memblokir memulai panggilan telepon dari aplikasi tertentu, tetapi itu hanya dapat terjadi jika aplikasi berada di latar depan.

tomacco
sumber
Terima kasih atas penyelidikan yang komprehensif, jawaban yang cemerlang. Saya senang mendengar itu hanya di latar depan, meskipun saya tidak dapat membantu tetapi berpikir itu tidak terlalu sulit untuk menciptakan sebuah aplikasi yang cenderung dibiarkan tanpa pengawasan dan di latar depan - aplikasi kamera yang melakukan time-lapse adalah contoh yang bagus untuk jenis benda itu. Saya masih lebih suka membuka URL di aplikasi lain adalah izin untuk setiap aplikasi lain dibuka - hanya mengkonfirmasi pertama kali per aplikasi eksternal, tidak setiap waktu. Saya menerima bahwa memiliki implikasi UX. Saya kira semua orang harus waspada.
Cartroo
5

Saya telah membuat aplikasi uji untuk memeriksa ini. Aplikasi dapat membuka URL seperti tel://123456789hanya saat berada di latar depan dan aktif. Ketika saya memanggil kode ini bahkan setelah memasukkan status latar belakang, API untuk membuka URL ini tidak melakukan apa pun. Jadi untuk menjawab pertanyaan Anda - aplikasi tidak akan dapat membuat panggilan tanpa sepengetahuan Anda.

Untuk menguji tempel ini di AppDelegate:

- (void)applicationDidEnterBackground:(UIApplication *)application {
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456789"]];
}
Mateusz Szlosek
sumber
Jawaban yang bagus, terima kasih untuk kodenya. Jika saya dapat menerima kedua jawaban itu, saya akan melakukannya.
Cartroo
2

Saat mencoba melakukan panggilan di iOS> = 10.3, sembulan akan selalu ditampilkan kepada pengguna. Documents

Vaiden
sumber