chiave API di Google Custom Search Engine: è riservata?

2

Normalmente, direi di sì, le chiavi API dovrebbero essere tenute segrete, e la console API di Google lo dice anche. Tuttavia, sto solo facendo una chiamata get ajax e tutte le informazioni sono in chiaro sulla mia pagina per costruire quella query, inclusa la mia chiave API e cx (id motore di ricerca personalizzato). Presumibilmente, qualcun altro può utilizzare le mie credenziali per fare interrogazioni contro il mio limite giornaliero.

Google ti consente di specificare una whitelist di referrer autorizzati a utilizzare la tua cse per dominio. Questo attenua un po 'questo problema? Se stanno semplicemente usando HTTP_REFERRER, può essere falsificato?

Qualche idea?

    
posta D.W. 06.06.2012 - 03:15
fonte

1 risposta

6

Google utilizza la chiave API per identificare chi invia tali richieste. Google imporrà una quota. Come hai correttamente identificato, se Google riceve troppe richieste utilizzando tale chiave API, inserirà nella lista nera la chiave API. Se ciò accade, il tuo sito / app smetterà di funzionare.

Pertanto, ci sono dei rischi nel lasciare la chiave API in chiaro sulla tua pagina. Questi rischi sono in qualche modo modesti: qualcuno che ottiene la chiave API non diventa root sui tuoi sistemi, ma potrebbe finire per far smettere di funzionare la tua app.

Se questo rischio ti infastidisce, non mettere la chiave API sulla tua pagina web. Invece, chiedi al client di inviare una richiesta AJAX al tuo server, quindi richiedi al server di inviare la richiesta a Google e restituire i risultati al client. In questo modo, la chiave dell'API di Google non viene mai esposta al client.

Il controllo dell'intestazione Referer impedisce a qualcun altro di copiare la tua chiave API e di inserirla nella propria pagina Web e di utilizzare Javascript per eseguire una query su Google. Tuttavia, non impedisce loro di copiare la chiave API e di utilizzarla nelle richieste avviate dalle proprie macchine. (Se usano curl o qualche altra libreria simile sul proprio computer, possono falsificare l'intestazione del Referer e fargli dire quello che vogliono.Pertanto, il controllo Referer non aiuta a prevenire questo scenario, ma impedisce ad altri di incorporare la chiave API nella loro pagina web e utilizzandolo in Javascript che viene eseguito nel browser di persone che visitano la loro pagina web.)

    
risposta data 06.06.2012 - 03:34
fonte

Leggi altre domande sui tag