Appels téléphoniques sur iOS : les WebView pas au niveau de Safari

Stéphane Moussie |

Quand vous passez un coup de fil avec votre iPhone, le système affiche tantôt une alerte demandant confirmation, tantôt rien du tout et démarre l'appel immédiatement. Le développeur Andrei Neculaesei pointe une faiblesse dans la façon dont iOS et les apps gèrent cette action.

La confirmation est en fait demandée en fonction de l'app que vous utilisez. Quand vous passez un coup de fil depuis le carnet d'adresses ou l'application Téléphone, l'appel se fait directement. Depuis Safari, quand vous tapotez sur un lien téléphonique dans une page web, iOS affiche d'abord une fenêtre demandant confirmation. Cette mesure est utile car elle permet d'éviter d'appeler par mégarde un numéro de téléphone surtaxé caché derrière une banale URL — une page web est en effet capable de démarrer toute seule un appel avec seulement quelques lignes de JavaScript.

Or, le pop-up de confirmation ne s'affiche pas par défaut dans les WebView, c'est-à-dire le navigateur interne des applications. Si vous recevez un lien derrière lequel se cache un numéro de téléphone automatique dans l'application Facebook Messenger et que vous tapotez dessus, l'appel va démarrer directement, sans vous demander votre confirmation. Embêtant s'il s'agit d'un numéro surtaxé.

Des applications très populaires comme Facebook Messenger, Gmail et Google+ sont concernées. La faute à qui ? Aux développeurs, estime Andrei Neculaesei, puisqu'il est clairement écrit dans la documentation que les WebView ne demandent pas de confirmation, mais qu'il est possible de changer ce comportement. Toutefois, cette faiblesse repose aussi en partie sur Apple, puisque le pop-up de confirmation pourrait être le réglage par défaut des WebView d'iOS plutôt que de demander aux développeurs de s'en occuper au cas par cas.

Facebook a indiqué à TechRadar qu'une mise à jour allait corriger ce comportement.

avatar KrummenHacker | 

Merci pour le lien vers la documentation développeur. Par contre, ce qui est décrit sur cette page, c'est comment désactiver la détection des numéros de téléphone, pas comment activer une demande de confirmation. Le développeur a donc le choix entre permettre la détection de liens téléphoniques avec le risque qu'ils soient automatiquement appelés et la non détection pure et simple de ces liens. Il n'est fait aucune allusion à une quelconque demande d'autorisation.

avatar Stéphane Moussie | 

@KrummenHacker : il y a pourtant ce passage : "However, a native app can be configured to display its own alert."

avatar charonne | 

Ce serait bien d'avoir un verrou global sur le système. Il n'est pas rare que l'appui malencontreux sur un bandeau de pub provoque l'appel immédiat d'un numéro surtaxé. Également une sorte de black-list "08*" serait un beau progrès.

CONNEXION UTILISATEUR