À compter de Chrome 50, dont la disponibilité générale est prévue pour le 20 avril de cette année, le navigateur web de Google ne va plus supporter l’API HTML5 Geolocalisation, qui permet d’obtenir des informations sur l’emplacement de l’utilisateur, depuis des pages web qui fournissent des contenus non sécurisés. En clair, pour qu’une page web qui s’exécute sur Chrome à partir de la version 50 puisse être en mesure de tirer profit de l’API Geolocalisation, l’API doit être appelée dans un contexte sécurisé, par exemple avec l’utilisation du protocole HTTPS.Il faut rappeler que cette API a de nombreux usages : les plans/cartes peuvent y faire appel pour le calcul de position et des itinéraires, les applications web mobiles pour indiquer les centres d’intérêt qui sont proches, elle peut même servir pour fournir des méta-informations qui seront apportées aux médias de type photo et vidéo.
L'API de Géolocalisation est publiée via « geolocation » dont l'objet parent est « navigator ». Si l'objet existe, l'utilisation du service de géolocalisation est possible. Il est possible de le tester via ce code :
| Code JavaScript : | Sélectionner tout |
1 2 3 4 5 | if ("geolocation" in navigator) { /* géolocalisation possible */ } else { alert("Le service de géolocalisation n'est pas disponible sur votre ordinateur."); } |
Pourquoi Google veut-il effectuer ce changement ? Si Google estime que cette mesure n’est pas suffisante pour protéger les utilisateurs d’une utilisation non volontaire de leurs données, l’entreprise rappelle que les données de géolocalisation sont par essence très sensibles. « Exiger HTTPS est requis pour protéger la vie privée des données de géolocalisation de vos utilisateurs. Si les données de géolocalisation sont disponibles dans un contexte non sécurisé, les attaquants sur un réseau seront en mesure de déterminer où l’utilisateur se trouve. Ce qui compromet sérieusement la vie privée ».
Quels sites sont impactés ? Ceux qui font usage de l’API Geolocalisation dans un contexte non sécurisé. Google précise par ailleurs que les iframes HTTPS qui font appel à cette API et sont imbriqués dans des pages HTTP sont également concernés.
Mais alors est-ce qu’une application web dans son ensemble doit faire usage du protocole HTTPS pour se servir de l’API Geolocalisation sur Chrome ? Google explique que cela n’est pas nécessaire. « Seules les pages qui font appel à cette API doivent le faire dans un contexte sécurisé », explique Google, rappelant que cette mesure n’affecte pas les développements en local.
Les développeurs disposent également d’un moyen de détecter si la géolocalisation a été bloquée parce qu’elle ne figure pas dans un contexte sécurisé via l’objet PositionError qui est passé dans la fonction de rappel d’erreur de l’API Geolocalisation. Cet objet définit les propriétés « code » et « message ». Les erreurs dues à un problème de contexte de sécurité vont attribuer à « code » la valeur 1 pour « Permission Denied Error ». Cette erreur est générée lorsqu’un utilisateur refuse l’accès à ses données de géolocalisation ou alors lorsque le système le fait. Pour savoir la raison exacte de cette erreur, il faut donc se pencher du côté de la valeur de la propriété « message ».
Source : blog développeurs Google
Vous avez lu gratuitement 61 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.