Installierte Python-App und Google Client-ID

8

Ich bin ein Python-Anfänger und möchte einen einfachen Google-Aufgaben-Client erstellen. Es wird eine native App sein. Der Punkt, den ich nicht verstehen kann, ist, wie man das "Client Secret" eigentlich geheim hält, da es in den Programmcode aufgenommen werden soll.

Ich habe einen Post gesucht und gefunden, einen Artikel in einem Google-Forum zitiert und grundsätzlich vorgeschlagen, das Ding wegzugeben.

Ich habe stundenlang versucht, das Ding zu bekommen, aber ich habe im Moment keine Antwort. Also, ich habe zwei Fragen zu stellen:

  1. Was sind die Folgen davon, dem Klienten das Geheimnis zu verraten?
  2. Wenn es für Menschen gefährlich ist, das Geheimnis zu sehen, gibt es eine Möglichkeit, es geheim zu halten, oder gibt es eine Möglichkeit, eine klassische Anmeldung zur Unterstützung anwendungsspezifischer Passwörter für die Anmeldung beim Google-Konto durchzuführen?
j0k 29.08.2012, 09:40
quelle

1 Antwort

4

Ich nehme an, Sie sprechen über OAuth.

Ja, Sie betten das Geheimnis ein - aber nein, es ist nicht wirklich ein Geheimnis; Einen anderen Beitrag finden Sie hier: OAuth - Einbetten des Clientgeheimnisses in Ihre Anwendung? .

Googles Dokumente sagen eigentlich dasselbe; aus: Ссылка

  

Die bei der Registrierung erhaltene client_id und client_secret sind in den Quellcode Ihrer Anwendung eingebettet. In diesem Zusammenhang wird der client_secret natürlich nicht als Geheimnis behandelt.

Und es hat keinen Sinn zu versuchen, es zu schützen - es muss über die Leitung gehen, um zu Google zu gelangen, und jeden mit usw. könnte es im Klartext ansehen.

Was Auswirkungen hat: Die Idee hinter dem Client-Geheimnis ist, glaube ich, der Schutz des Kunden-Anbieters (das sind Sie). Theoretisch könnte ich, wenn ich Ihren Clientschlüssel und Ihr Geheimnis kenne, eine böswillige Website / einen böswilligen Browser erstellen, mit dem sich Benutzer rechtmäßig anmelden können, aber dann alle ihre Aufgaben löscht und es so aussieht, als wären Sie verantwortlich. Das ist wahrscheinlich sinnvoll, um mit Web-Services zu verteidigen, aber für einen installierten Client, der Benutzer wahrscheinlich heruntergeladen von irgendwo (App Store, Website, etc), die hoffentlich sicher, dass es legitim war.

    
ckhan 29.08.2012, 10:51
quelle