2011-02-05 6 views
6

Ho visto servizi come Google che richiedono l'aggiunta di una chiave API quando si effettua una chiamata javascript, come questa.Qual è il punto di una chiave API javascript quando può essere visto da chiunque visualizzi il codice js

https://www.google.com/jsapi?key=thekeygoeshere 

Qual è il punto di avere questa chiave API JavaScript quando il codice può essere visto e la chiave può essere letto. Qualcuno può semplicemente copiare questa chiave e usarla per il proprio sito? O c'è qualcos'altro che fanno in background per assicurarsi che la chiave appartenga al sito che effettua la chiamata?

risposta

6

Presumibilmente controllano l'intestazione HTTP del referente.

La maggior parte degli utenti lo invia. Quindi, se è:

  • Il sito che corrisponde alla chiave, possono funzionare come normale.
  • Un sito che non corrisponde alla chiave, possono rifiutare la richiesta.
  • Vuoto, possono funzionare normalmente e consentire a una piccola parte di utenti di utilizzare l'API sul sito sbagliato.

La maggior parte dei visitatori di un sito che utilizza la chiave errata verrà bloccata, quindi non sarà opportuno utilizzare la chiave errata sul sito in primo luogo.

+0

Questo sarebbe piuttosto rischioso, in quanto l'intestazione-Referer può essere vuota secondo lo standard (ed è per molti utenti, poiché non vogliono che il sito web sappia dove si trovavano prima). – anroesti

+0

Aggiornato la risposta spiegando perché non è davvero rischioso. – Quentin

+0

Questo argomento emerge sempre, ma se anche il 10% degli utenti lo ha attivato (e sono sicuro che è molto più grande) noteresti se un sito ad alto traffico stava usando la tua chiave. – ZoFreX

0

Il codice google utilizzerà AJAX o qualcosa di simile che invierà una chiamata al proprio server in cui viene specificata la chiave e l'url del sito su cui è in uso. Google può quindi verificare se è il sito corretto per quella chiave e interrompere il funzionamento del codice in caso contrario.

Sebbene, la mappa API sembra funzionare su qualsiasi sito con qualsiasi chiave.

+0

A partire da v3, l'API della mappa non richiede più una chiave (a meno che non si stia utilizzando il servizio principale) – Matt

Problemi correlati