48

GmailのCookieを見ると、「rememberme」Cookieに何が保存されているかを簡単に確認できます。ユーザー名/1回限りのアクセストークン。ユーザー名がシークレットの場合も、別の方法で実装できます。しかし、何であれ...セキュリティはそれほど高くありません。Cookieを盗むと、準備が整います。

ただし、私の質問は機能面です。アクセストークンはいつワイプしますか?ユーザーが別のマシンで[覚えている]をクリックせずにログインした場合、すべてのマシンでアクセストークンを無効にする必要がありますか?これが伝統的にどのように実装されているのか、またどのように実装されるべきかについて質問しています。

4

5 に答える 5

15

私は定期的に 2 台または 3 台のマシンを同時に使用しており、すべてのマシンに「remember me」を設定しています。そのうちの 1 つが他の接続を切断すると非常に煩わしいので、お勧めしません。

従来はタイムアウトを使用していましたが、Cookie は一定の時間が経過すると (またはユーザーがサインアウトすると) 期限切れになります。

それはすべて、セキュリティ モデルに依存します。1 台のコンピューターに 1 人のユーザーしかいないと予想される社内アプリケーションを作成している場合は、gmail よりも厳しい制限が必要になる場合があります。

また、サービス拒否の可能性にも注意してください。あるマシンでのアクションによって別のマシンが強制的に使用できなくなる場合、これは特定のシナリオで正当なユーザーが制御を取り戻すのを防ぐために使用される可能性があります。

于 2009-07-02T14:54:12.420 に答える
6

別のマシンからログオンしても、別のマシンの Cookie に関連付けられたログインが無効になることはありません。ただし、ユーザーがログアウトするか、「あなたではないですか? ここにログインする」と、ユーザーが作業している Cookie がクリアされます。

ところで、https に固執し、スクリプトを作成しないようにすることで、Cookie を盗むことを難しくすることができます。

Cookie の出力に「; HttpOnly」を追加すると、JavaScript で Cookie を使用できなくなります。

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.0
Set-Cookie: ASP.NET_SessionId=ig2fac55; path=/; HttpOnly
X-AspNet-Version: 2.0.50727
Set-Cookie: user=t=bfabf0b1c1133a822; path=/; HttpOnly
X-Powered-By: ASP.NET
Date: Tue, 26 Aug 2008 10:51:08 GMT
Content-Length: 2838

あなたはこれについてもっと読むことができます

于 2009-07-02T14:55:06.287 に答える
3

また、remember me cookie もマシンを識別する必要があります。覚えておきたい場所とそうでない場所(自宅と職場)があるため、マシンに関連している必要があります。

通常、有効期限は妥当な期間 (2 週間) に設定されるか、ユーザーがマシンから明示的にログオフした後に設定されます。

于 2009-07-02T14:54:44.057 に答える
0

私がすることは、各セッションを IP アドレスにリンクすることです。セッション トークンが別の IP から送信された場合は、それを拒否します。

于 2009-07-02T14:55:39.657 に答える
0

アクセス トークンは、マシン間で簡単に転送できないように、IP 固有にする必要があります。

また、ユーザーがアクティブなトークンを持っているマシンを確認できるように実装する必要があります。

別のコンピューターで新しいトークンが作成されたときにトークンを無効にすることを選択したサイトは、ユーザーが複数のコンピューターでサービスにアクセスしないことを選択するか、またはアクセスする場合は、それらの使用が再度ログインすることを正当化することを選択します.

採用するポリシーは、保持しているデータとユーザーのニーズによって異なります。

于 2009-07-02T14:57:28.653 に答える