Чи мають додатки iPhone дозвіл на дзвінки без взаємодії з користувачем?


9

Я читав про шахрайство за пропущений дзвінок саме зараз, коли користувач отримує плату, навіть якщо він не передзвонює номер. Мені прийшло в голову, що шкідливий додаток для iPhone може телефонувати на преміальні номери, щоб шахрайство переробляти користувачів - дійсно, здається, це було раніше.

Відповідно до власної документації Apple :

Коли користувач натискає телефонну посилання на веб-сторінці, iOS виводить попередження із запитом, чи дійсно користувач хоче набрати номер телефону та ініціює набір номера, якщо користувач приймає. Коли користувач відкриває URL-адресу зі схемою tel у нативній програмі, iOS не відображає попередження та ініціює набір номера без додаткового спонукання користувача.

Мені здається, що, очевидно, доброякісний додаток для iPhone може, скажімо, зачекати, поки телефон не залишиться зарядженим (а значить, ймовірно, його не відвідуватиме користувач), а потім ініціювати дзвінок на номер преміум-тарифу, щоб відключити розробника акуратний бонус . У iOS не існує жодного дозволу, який я можу змінити, щоб запобігти такій поведінці, оскільки це відкриває телефонний додаток з URL-адресою, а не доступ до будь-яких даних телефону.

Чи може хтось підтвердити, чи моє розуміння правильне, і якщо так, то чому на землі Apple не закрила таку зенітну дірку?

Відповіді:


8

Я експериментально перевірив поведінку iOS, намагаючись ініціювати телефонний дзвінок з одного з моїх додатків.

Ось результати:

  • Можна систематично запустити телефонний дзвінок без підтвердження користувача. Я тільки що написав єдиний рядок коду, який виконується відразу після завантаження програми. Це означає, що якщо ваша програма стоїть на передньому плані, вона може зателефонувати в будь-який час, навіть не вимагаючи, щоб користувач десь торкнувся.
  • Я надіслав мовчу віддалене повідомлення про віддалене натискання в додаток, щоб розбудити його, якщо воно не запущене, а потім виконати той самий код. Жоден дзвінок не розпочато; iOS не дозволяє додатку ініціювати телефонний дзвінок, якщо програма працює у фоновому режимі.

Отже, відповідаючи на ваші запитання, єдиний спосіб запустити телефонний дзвінок без того, щоб користувач цього помітив, - це якось переконати користувача залишити шкідливий додаток на передньому плані, а потім розпочати телефонний дзвінок, оскільки iOS не дозволить цю операцію якщо додаток фоновим фоном

В даний час iOS не забезпечує жодного механізму для блокування запуску телефонних дзвінків з певного додатка, але це може статися лише в тому випадку, якщо додаток стоїть на передньому плані.


Дякую за всебічне розслідування, блискучу відповідь. Я радий почути, що це лише на передньому плані, хоча я не можу не допомогти, але думаю, що не надто складно винайти додаток, який, швидше за все, залишиться без нагляду і на передньому плані - додаток для камери, що робить проміжок часу, - це хороший приклад типу речі. Я все-таки вважаю за краще відкривати URL-адреси в інших додатках. Це був дозвіл на відкриття кожного іншого додатка - щойно підтверджувався перший раз за зовнішньою програмою, а не кожен раз. Я погоджуюсь, що це має наслідки для UX. Я думаю, кожен просто повинен бути пильним.
Картру

5

Я зробив тестовий додаток, щоб перевірити це. Додаток може відкривати таку URL-адресу, як tel://123456789лише тоді, коли він на передньому плані та активний. Коли я називаю цей код навіть після введення фонового стану, API для відкриття цієї URL-адреси нічого не робив. Отже, щоб відповісти на ваше запитання - програми не зможуть телефонувати без вашого відома.

Щоб перевірити цю пасту, AppDelegateвиконайте вказані нижче дії .

- (void)applicationDidEnterBackground:(UIApplication *)application {
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456789"]];
}

Чудова відповідь, дякую за код. Якби я міг прийняти обидві відповіді, я би.
Картру

2

При спробі ініціювати виклик на iOS> = 10.3, користувачеві завжди відображатиметься спливаюче вікно. Документи

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.