2

ユーザーがログインして「remember me」ボックスをオンにすると、そのキー (md5 では非常に乱数) が生成され、Cookie に保存されます。ユーザーがログインしていない場合、私のコードは「remember me key」Cookie をチェックし、それがユーザーと一致する場合、そのユーザーはログインしています。

私の質問は、ユーザーが自分のキー Cookie を覚えておいて、それを友人に渡すのをどのように阻止するかということです。そうすれば、Cookie をコピーした人は、アカウントのパスワードさえ知らずにログインすることになり、購入せずにプレミアム アカウントにアクセスしてしまうからです。

キーを IP にバインドできません。そうしないと、多くのコンピューターが IP を頻繁に変更するため、remember me がうまく機能しません。ユーザーエージェントやその他のブラウザ情報を保存することについて考えましたが、どう思いますか?

4

2 に答える 2

6

Cookie が使用されるたびにキーを再生成することで、Cookie の共有を検出できます。誰かが別の誰かに覚えている Cookie を渡した (または盗まれた) 場合、2 人ともそれを使用すると、Cookie を使用した後、2 人とも別のキーを使用することになります。

アカウントごとに、最後に生成されたキーのみを許可します。誰かがデータベースの値と一致しないキーを使用した場合、そのユーザーに関連付けられたすべてのセッションを無効にします。

于 2013-01-19T11:13:41.763 に答える
0

私の質問は、ユーザーが自分のキー Cookie を覚えておいて、それを友達に渡さないようにするにはどうすればよいですか?

最善の解決策は、remember me を使用しないことです: https://www.owasp.org/index.php/Guide_to_Authentication#Remember_Me

それでも必要な場合は、リクエスタのブラウザと IP を確認できますが、ユーザビリティの問題がある可能性があります。有料ユーザーごとに同時セッション数を 1 に制限すると、心配しているエクスプロイトを抑止できる可能性があります。

于 2013-01-19T10:59:15.217 に答える