web-dev-qa-db-fra.com

Dois-je masquer la clé d'API lors de l'utilisation de l'API Google Maps js? Si c'est le cas, comment?

Selon https://developers.google.com/maps/documentation/javascript/tutorial#HTML5 , il semble que je puisse ajouter la balise suivante à mon html et commencer à utiliser l'API maps js.

<script async defer
      src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>

Mais cela révélera ma clé API.

Après avoir recherché sur Google et parcouru les réponses sur stackoverflow, je pense qu'il n'est peut-être pas nécessaire de cacher cette clé API. J'ai juste besoin de définir le référent lorsque je crée la clé API sur Google, comme expliqué dans https://stackoverflow.com/a/2256312/1316649

Ainsi, même d'autres connaissent ma clé API, ils ne peuvent pas l'utiliser à partir d'un autre domaine. Ai-je raison?

Mais Google dit que vous ne devez pas intégrer de clé API dans le code: https://support.google.com/cloud/answer/6310037

Alors, dois-je masquer la clé API lors de l'utilisation de l'API Google Maps js? Si c'est le cas, comment?

Mise à jour: Par "clé API", j'entendais la clé API du navigateur.

19
fstang

Il existe plusieurs types de clés API pour Google Maps. Il y a des clés de navigateur, qui doivent être utilisées lors de l'incorporation des bibliothèques côté client, et c'est OK pour révéler aux gens (vous besoin pour l'utiliser du côté client afin que vous ne puissiez pas éviter cela de toute façon). Ensuite, il y a des clés côté serveur qui sont utilisées pour des choses telles que les services de géocodage. Ceux-ci sont censés être gardés secrets.

Assurez-vous simplement que vous utilisez une clé de navigateur.

12
Matti Virkkunen

Bien que les réponses ci-dessus soient utiles, aucune d'entre elles ne résout la vulnérabilité suivante:

Une fois qu'un utilisateur a accès à votre clé API, même s'il est limité à l'utiliser uniquement depuis votre domaine, il peut toujours l'utiliser autant qu'il le souhaite. Dans le sens le plus grossier, cela pourrait signifier un million de pages actualisées (et des chargements de carte) en très peu de temps, vous mettant par conséquent au-dessus de votre quota d'utilisation.

Je n'ai trouvé aucune solution qui résout ce problème. A moins que je manque quelque chose ...?

Limites d'utilisation pertinentes pour l'api javascript de google maps ici.

5
Murcielago

Le lien que vous avez publié et qui dit que vous ne devez pas intégrer de clés d'API dans le code est lié à la plateforme cloud de Google. Vous pouvez laisser votre clé API pour Google Maps dans votre code.

3
Chester Millisock

Je recommanderais de restreindre vos clés d'API pour qu'elles ne soient utilisées que par les adresses IP et les URL de référence qui en ont besoin: en restreignant les adresses IP, les URL de référence, vous pouvez réduire l'impact d'une clé d'API compromise.

Vous pouvez spécifier les hôtes et les applications qui peuvent utiliser chaque clé à partir de la console en ouvrant la page Informations d'identification, puis en créant une nouvelle clé API avec les paramètres souhaités ou en modifiant les paramètres d'une clé API.

Cela devrait vous aider à sécuriser vos clés API.

Jeff

2
Jeffrey