Ich habe gerade über einen Betrug mit verpassten Anrufen gelesen, bei dem dem Benutzer Gebühren in Rechnung gestellt werden, selbst wenn er die Nummer nicht zurückruft. Mir kam der Gedanke, dass eine bösartige iPhone-App Premium-Nummern anrufen könnte, um Benutzer um Geld zu betrügen – tatsächlich scheint dies in der Vergangenheit passiert zu sein.
Laut Apples eigener Dokumentation :
Wenn ein Benutzer auf einer Webseite auf einen Telefonlink tippt, zeigt iOS eine Warnung an, in der er gefragt wird, ob der Benutzer die Telefonnummer wirklich wählen möchte, und leitet den Wählvorgang ein, wenn der Benutzer akzeptiert. Wenn ein Benutzer eine URL mit dem Tel-Schema in einer nativen App öffnet, zeigt iOS keine Warnung an und initiiert den Wählvorgang, ohne den Benutzer weiter aufzufordern.
Es scheint mir, dass eine scheinbar harmlose iPhone-App beispielsweise warten könnte, bis das Telefon aufgeladen ist (und daher wahrscheinlich nicht vom Benutzer besucht wird) und dann einen Anruf bei einer Premium-Rufnummer einleitet, um dem Entwickler einen ordentlichen Bonus einzustreichen . Es scheint keine Berechtigung in iOS zu geben, die ich ändern kann, um dieses Verhalten zu verhindern, da dies die Telefon-App mit einer URL öffnet, anstatt auf Telefondaten zuzugreifen.
Kann jemand bestätigen, ob mein Verständnis richtig ist, und wenn ja, warum um alles in der Welt hat Apple ein so klaffendes Loch nicht geschlossen?
Ich habe das iOS-Verhalten experimentell überprüft, indem ich versucht habe, einen Telefonanruf von einer meiner Apps zu initiieren.
Hier sind die Ergebnisse:
Um Ihre Fragen zu beantworten, besteht die einzige Möglichkeit, einen Anruf zu starten, ohne dass der Benutzer es bemerkt, darin, den Benutzer irgendwie davon zu überzeugen, die bösartige Anwendung im Vordergrund laufen zu lassen und dann den Anruf zu starten, da iOS diesen Vorgang nicht zulässt wenn die App im Hintergrund läuft.
Derzeit bietet iOS keinen Mechanismus, um das Starten von Telefonanrufen von einer bestimmten App aus zu blockieren, aber dies kann nur passieren, wenn sich die App im Vordergrund befindet.
Ich habe eine Test-App erstellt, um dies zu überprüfen. App kann URL wie z. B. tel://123456789
nur öffnen, wenn sie im Vordergrund und aktiv ist. Wenn ich diesen Code auch direkt nach dem Eintritt in den Hintergrundzustand aufrufe, hat die API zum Öffnen dieser URL nichts getan. Um Ihre Frage zu beantworten: Apps können ohne Ihr Wissen keinen Anruf tätigen.
Um dies zu testen, fügen Sie dies in Ihr ein AppDelegate
:
- (void)applicationDidEnterBackground:(UIApplication *)application {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456789"]];
}
Beim Versuch, einen Anruf unter iOS >= 10.3 zu initiieren, wird dem Benutzer immer ein Popup angezeigt. Dokumente
Cartoo