2

私は、人々に役立つと思われる非常に簡単なマッシュアップをまとめようとしており、Twitter のコミュニケーションを利用したいと考えています。OAuth を使用するのはこれが初めてで、作業を完了するためにTwitterizerライブラリを選択しました。

私の質問は、ユーザー情報を保存したり、ユーザーにアカウントを作成させたりする予定がないという事実から来ています (より迅速なユーティリティを意図しています)。これを考えると、ユーザーの OAuth アクセス トークンとシークレットを取得したら、OAuth のセキュリティ原則を損なうことなくそれらを (おそらくローカルに) 格納する安全な方法を見つけ出す必要があります。

これが私がこれまでに考えていることです:

  • アクセスキーとシークレットを取得するまで、ユーザーはプロセスを実行します
  • 値を暗号化し、後で取得するために Cookie に保存します

ただし、いくつかの質問/懸念事項:

  • 誰かが Cookie を介してユーザーになりすますのを防ぐものは何ですか?
  • 同じブラウザで潜在的に複数のユーザーに対処する正しい方法は何ですか? 私の最初の考えは、アプリの「ログアウト」ボタンで Cookie を殺すことですが、よくわかりません。

あなたが与えることができる助けを前もってありがとう!

4

2 に答える 2

0

全体として、機密情報をCookieに依存するべきではないと思いますが、セキュリティは常にバランスをとる行為です。最終的には、安全に保管していない情報を隠そうとしています。

トークンの暗号化に加えて、チェックサムを含めることもできます。別のクッキーに入れておきます。機密データが改ざんされていないことを確認するために、サイトが機密データの整合性を検証するために使用できる値である必要があります。一方向に暗号化されたハッシュなどである可能性があります。

Cookieに有効期限を指定することもできます。おそらくそれを数日または数週間に保ちます。

もう一度言いますが、一般的に機密情報をCookieに保存することは悪い考えです。

于 2011-08-18T18:30:57.697 に答える
0

OAuth は使ったことがないのでよくわかりませんが、1 つのブラウザで複数のユーザーを処理する方法の 1 つは、ある種のタイマー機能を使用することです。ユーザーがページに接続するたびに、Cookie は「有効期限」のタイムスタンプを取得します。これは、たとえば +30 分です。有効期限が過ぎた場合、アプリケーションはユーザーに再認証を求めます。

ページのアンロード時に非常に短いタイムスタンプを設定し、ページのロード時に長いタイムスタンプを設定することで、これを行うこともできます。これは、ユーザーがアプリ内であるページから別のページに移動した場合、長いタイムアウトが発生することを意味しますが、ユーザーがアプリを離れた場合、次のユーザーは、前のユーザーがログインしていなくても、1 分ほどで同じブラウザーを使用できます。 .

より安全な方法は、セッションを使用することです。たとえば、セッション ID を保持する Cookie を設定してから、セッションに「有効期限」の値を設定できます。

ただし、Cookie が操作されたり、タイムスタンプが変更されたり、セッションがハイジャックされたりする可能性があるため、これらのメソッドは絶対に簡単ではないことに注意してください。

于 2011-08-14T21:19:24.687 に答える