8

私はPythonの初心者で、基本的なGoogleタスククライアントを作成したいと思っています。ネイティブアプリになります。私が理解できないポイントは、プログラムコードに含まれるため、「クライアントシークレット」を実際にシークレットに保つ方法です。

私は、グーグルフォーラムの投稿を引用して、投稿を検索して見つけました。そして、基本的に、物を与えることを提案しました。

私は何時間もかけて物を手に入れようとしましたが、現時点では答えがありません。だから、私は尋ねるべき2つの質問があります:

  1. クライアントに秘密を与えることの結果は何ですか?
  2. 秘密を人々に見せることは危険ですが、秘密を守る方法はありますか、それとも、アプリケーション固有のパスワードをサポートしてGoogleアカウントにログインするための従来のログインを行う方法はありますか?
4

1 に答える 1

4

OAuthについて話していると思います。

はい、シークレットを埋め込みますが、いいえ、実際にはシークレットではありません。こちらの別の投稿を参照してください: OAuth - アプリケーションにクライアント シークレットを埋め込む? .

実際、Google のドキュメントにも同じことが書かれています。から: https://developers.google.com/accounts/docs/OAuth2#installed

登録時に取得した client_id と client_secret は、アプリケーションのソース コードに埋め込まれます。このコンテキストでは、client_secret は明らかにシークレットとして扱われません。

そして、それを保護しようとしても意味がありません。Google に到達するにはネットワークを経由する必要があり、Fiddlerなどを使用していれば誰でもプレーン テキストでそれを見ることができます。

影響について: クライアント シークレットの背後にある考え方は、クライアント ベンダー (それはあなたです) を保護することだと私は信じています。理論的には、あなたのクライアント キーとシークレットを知っていれば、悪意のある Web サイト/クライアントを作成して、ユーザーが合法的にログインできるようにし、その後すべてのタスクを削除して、あなたが責任を負っているように見せることができます。Web サービスで防御するのはおそらく理にかなっていますが、インストールされたクライアントの場合、ユーザーはおそらくどこか (アプリ ストア、Web サイトなど) からそれをダウンロードし、それが正当であることを確認したと考えられます。

于 2012-08-29T10:51:11.817 に答える