2012-08-29 3 views
8

Sono un principiante di pitone e desidero creare un client di base per le attività di google. Sarà un'app nativa. Il punto che non riesco a capire è come mantenere il "segreto del cliente" in realtà segreto, poiché deve essere incluso nel codice del programma.App Python installata e ID client Google

Ho cercato e trovato un post, citando un post su google forum, e sostanzialmente suggerendo di dare via la cosa.

Ho passato ore a cercare di ottenere la cosa, ma al momento non ho risposta. Quindi, ho due domande da porre:

  1. Quali sono le conseguenze del segreto del cliente?
  2. Se lasciare che le persone vedano il segreto è pericoloso, esiste un modo per mantenerlo segreto oppure esiste un modo per effettuare un accesso classico per supportare le password specifiche dell'applicazione per accedere all'account Google?

risposta

4

Presumo che tu stia parlando di OAuth.

Sì, si incorpora il segreto - ma no, non è davvero un segreto; vedere un altro post qui: OAuth - embedding client secret in your application?.

I documenti di Google dicono in realtà la stessa cosa; da: https://developers.google.com/accounts/docs/OAuth2#installed

Il client_id e client_secret ottenuti durante la registrazione sono incorporati nel codice sorgente dell'applicazione. In questo contesto, il client_secret non è ovviamente trattato come un segreto.

E non c'è nessun punto nel tentativo di proteggerla - si deve fare la sua strada attraverso la rete per arrivare a Google, e chiunque con Fiddler, ecc poteva guardarlo in testo normale.

Per quanto riguarda l'impatto: l'idea alla base del segreto del cliente, credo, è proteggere il fornitore del cliente (che sei tu). In teoria, se conosco la chiave e il segreto del cliente, potrei creare un sito Web/client dannoso che consenta agli utenti di accedere legittimamente, ma poi elimina tutte le loro attività e sembrerebbe che tu fossi responsabile. Questo probabilmente ha senso difendersi dai servizi web, ma per un client installato, l'utente probabilmente lo ha scaricato da qualche parte (app store, sito web, ecc.) Che si sperava assicurasse che fosse legittimo.

+0

Grazie mille per la tua risposta, avevo davvero bisogno di qualcosa di chiaro, come la tua risposta. Quindi, posso fare un semplice modulo di accesso per garantire l'accesso? O dovrei entrare nel mondo di Oauth2, che sembra, francamente, difficile? ... –

+1

Do OAuth2 di sicuro. Non è così scoraggiante come sembra, ed è in realtà * meno * lavoro di fornire un modulo di accesso (in OAuth, Google fornisce il modulo). Non vuoi che gli utenti digitino la loro vera password nella tua app, per il loro bene e il tuo (non useresti mai qualcosa che lo abbia fatto, giusto ?!) Buona fortuna! – ckhan

+0

Grazie per le tue risposte @ckhan, sei stato molto utile. –