Welke stappen moet ik nemen om mijn Google Maps API-sleutel te beschermen?

Ik heb een Google Maps API-sleutel voor mijn domein verkregen.

De voorbeelden die werden gegeven toen ik mijn sleutel kreeg, tonen de sleutel die is ingesloten in verzoekparameters, bijvoorbeeld:

<script src="https://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true_or_false&amp;key=my-key" type="text/javascript"></script>

Ik begrijp dat het referrer-veld in verzoeken overeen moet komen met mijn domein. Is het veilig om mijn sleutel zichtbaar te maken in scripttags en dergelijke? Of zijn er nog andere stappen die ik moet nemen?


Antwoord 1, autoriteit 100%

Aangezien die sleutel moet worden opgenomen in de <script>-tags van uw HTML-pagina’s, kunt u niets doen om de JS-bestanden/gegevens van de servers van Google te laden:

  • je moet het in je HTML-bestanden plaatsen
  • iedereen kan die bekijken.

Toch maakt het niet echt uit: als iemand deze sleutel op een ander domein dan het jouwe probeert te gebruiken, krijgen ze een Javascript-waarschuwing — wat niet prettig is voor hun gebruikers.

Dus :

  • Je kunt niets doen; zo werkt het
  • En er is niet veel om je zorgen over te maken, zou ik zeggen.

Antwoord 2, autoriteit 26%

Er is een instelling op de Google API-console die uw API-bandbreedtegebruik kan beschermen tegen gebruik door een ander domein/gebruiker. U kunt dat beperken en beschermen door referrer te gebruiken op de API-console. API Key weigert verzoeken zonder verwijzers die overeenkomen met uw beperkingen.

Hier is een screenshot van Google voor een API-sleutel die alleen door Google kan worden gebruikt in zijn twee domeinen.


Antwoord 3, autoriteit 12%

Hoewel deze vraag al een paar jaar oud is, is hij een hele goede. Zoals ik het begrijp, kan het blootleggen van API-sleutels, zelfs als ze overeenkomen met het domein, nog steeds tot misbruik leiden. Er is een bericht op Security Stack Exchangehier die hier nader op ingaat.

De stappen die u kunt nemen om mogelijk misbruik te voorkomen, zijn door Google hier gepubliceerd:

Handleiding met beste praktijken voor veilig gebruik van API’s:
https://support.google.com/cloud/answer/6310037?hl=nl

Hoewel ik zou aanraden om alles ter harte te nemen, is er een aanpak die het specifieke voorbeeld zou behandelen dat door Brabster is gepost en dat is om de sleutel op te slaan in een omgevingsvariabele. Op deze manier hoeft u alleen maar de sleutel te vervangen door een variabele aan de serverzijde die in uw project is opgeslagen. Zorg er echter voor dat u het bestand waarin de sleutel is opgeslagen niet vastlegt in een openbare repository.


Antwoord 4

U moet de back-end/server-kant gebruiken om de sleutel te beschermen en af ​​te handelen. In mijn geval gebruikte ik Django f/w server-side die een ajax-oproep kan dienen om de sleutel van serverscript/db te krijgen en deze vervolgens door te geven aan Google API.

Other episodes