Web アプリケーションに従来の「remember-me」チェックボックスを実装して、認証されたユーザーが Web サイトに戻ったときに「記憶」できるようにすることを検討しています。
Gmail、Facebookなどにはこの種の機能がありますが、どれだけ安全かはわかりません。
Spring Securityのような Java フレームワークは、「ハッシュベースのトークン アプローチ」を使用します。(ユーザー名、パスワード、expirationTime、および privateKey を使用して) 生成されるトークンは、クライアントの Cookie 'token=567whatever567' に格納されます。トークンは、ユーザーが次に戻ってきたときに再認証するために再利用されます。
ログイン プロセスが https 接続で行われた場合でも、その後のすべての http 要求で、Cookie が暗号化されずにネット上に送信されるという事実が懸念されます。
基本的に、誰もがトークンを読み取り、それを再利用して認証できます。
Gmail や Facebook がこの機能をどのように実装しているかを調べようとしています。FB では「presence=DJ267619445G09H0L15228675.....」のような Cookie が表示され、Gmail ではその他の Cookie が表示されます。
他のユーザーになりすまそうとする誰かから保護するために、彼らが他のトリックを使用しているかどうかはよくわかりません.
cURLのようなものを使用して自分自身になりすまして、ユーザーを記憶するために特定のトークンのみを使用しているかどうかを確認します。
もしそうなら、それは私には大きなセキュリティ問題のように見えます. facebook ではないかもしれませんが (私は気にしません)、Gmail では「Use always https」を設定しないと、http 接続が使用され、暗号化されていないトークンがインターネット経由で送信されます。
どう思いますか?
また、Facebook のユーザー名/パスワード フィールドが (https ではなく) http で公開されていることにも気付きました。この点で、私も疑問に思っています.httpでユーザー名/パスワードフィールドを公開しているすべてのWebサイトは、「本質的に」安全ではありません. リクエストが http 経由で送信されると、「世界中に表示される資格情報」の問題を解決できる「https へのリダイレクト」はありません。
ありがとう
編集:
私の心配は十分に根拠がありましたhttp://codebutler.com/問題を強調してくれたFiresheep
の作成者に
感謝します!!!