Quali passaggi devo eseguire per proteggere la mia chiave API di Google Maps?


96

Ho ottenuto una chiave API di Google Maps per il mio dominio.

Gli esempi forniti quando ho ottenuto la mia chiave mostrano la chiave incorporata nei parametri della richiesta, ad esempio:

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

Apprezzo che il campo referrer nelle richieste deve corrispondere al mio dominio, è sicuro rendere la mia chiave visibile nei tag di script e simili? O ci sono altri passaggi che dovrei fare?

Risposte:


92

Considerando che la chiave deve essere inclusa nei <script>tag delle tue pagine HTML, per caricare i file / dati JS dai server di Google, non c'è niente che puoi fare:

  • devi metterlo nei tuoi file HTML
  • ognuno può dare un'occhiata a quelli.

Tuttavia, non ha molta importanza: se qualcuno cerca di utilizzare questa chiave su un dominio diverso dal tuo, riceverà un avviso Javascript, il che non è piacevole per gli utenti.

Così :

  • Non c'è niente che tu possa fare ; questo è il modo in cui funziona
  • E non c'è molto di cui dovresti preoccuparti, direi.

5
Penso che potresti utilizzare un proxy sul tuo sito che utilizza la chiave per recuperare il file "reale". Totalmente inutile, sì, ma penso che sia possibile.
Tim Sylvester

1
Ho pensato che valesse la pena controllare nel caso mi fossi perso qualcosa. Saluti a chi ha risposto.
Brabster

@Tim: non sono sicuro; Immagino il codice JS stesso se sto controllando il nome di dominio del sito che visualizza la mappa, e sembrerebbe normale che lo abbia confrontato, in qualche modo, con un'informazione inclusa nella chiave - eppure, l'ho fatto non provare. ;;; @Brabster: :-)
Pascal MARTIN

2
È importante, ad esempio, se vogliamo proteggere l'utilizzo della larghezza di banda della nostra chiave API. Controlla la mia soluzione.
Ifan Iqbal

3
e cosa succede se prendo la chiave API per usarla nella mia APP (windows / ios / android)? posso simulare il referrer e utilizzare questa chiave per i miei scopi a tue spese!
loki

21

C'è un'impostazione sulla console dell'API di Google che può proteggere l'utilizzo della larghezza di banda dell'API dall'utilizzo da parte di un altro dominio / utente. Puoi limitarlo e proteggerlo utilizzando referrer sulla console API. API Key rifiuterà le richieste senza referrer che corrispondono alle tue restrizioni.

Ecco uno screenshot di Google per la chiave API che può essere utilizzata solo da Google per i suoi due domini. inserisci qui la descrizione dell'immagine


3
e gli utenti di dispositivi mobili?
Muhammad Umer

Per aggiungere un po ', i dettagli possono essere qui developers.google.com/maps/…
SIslam

15

Anche se questa domanda è vecchia di pochi anni, è molto buona. A quanto mi risulta, esporre le chiavi API, anche se corrispondono al dominio, potrebbe comunque portare ad abusi. C'è un post su Security Stack Exchange qui che copre questo in modo più dettagliato.

I passaggi che puoi eseguire per evitare potenziali abusi sono stati pubblicati da Google qui:

Guida alle best practice per l'utilizzo sicuro delle API: https://support.google.com/cloud/answer/6310037?hl=it

Anche se consiglierei di prendere tutto a bordo, esiste un approccio che si occuperebbe dell'esempio specifico che è stato pubblicato da Brabster e che consiste nel memorizzare la chiave in una variabile d'ambiente . In questo modo, tutto ciò che devi fare è sostituire la chiave con una variabile lato server memorizzata nel tuo progetto. Tuttavia, assicurati di non eseguire il commit del file che memorizza la chiave in un repository pubblico.


16
Penso anche che questa risposta non affronti la domanda. L'API delle mappe richiede javascript lato browser, che è sempre leggibile da chiunque recuperi la pagina.
david van brink

-1

È necessario utilizzare il lato back-end / server per proteggere e gestire la chiave. Nel mio caso ho usato Django f / w lato server che può servire una chiamata ajax per ottenere la chiave dal server script / db e poi passarla a google api.


4
Se la tua chiave API raggiunge il browser, può essere recuperata da una terza parte.
Moose on the Loose
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.