ユーザーが前回Webアプリケーションにログインしているときに「記憶」オプションを選択した場合、Webアプリケーションサーバーは、次回ログインしたときにユーザーをどのように識別しますか?資格情報は、クライアント側自体のCookieに保存されますか?それは巨大なセキュリティ問題を正しくするでしょうか?誰か説明してください
通常、ユーザーのブラウザには、サーバー上のユーザーを識別するランダムな文字列を含むCookieがいくつか格納されています。これのより安全なバリアントは、ブラウザーのバージョン、ユーザーのOS、おおよその場所などの他のパラメーターもチェックします。
基本的に、Cookieを使用してFacebookなどのWebページにアクセスすると、Cookie内のランダムな文字列でのみ認証されます。
仕組み:ログインすると、サーバーはこのランダムな文字列を生成し、データベース(他の識別パラメーターと一緒に)に格納します。さらに、この文字列をCookieとしてユーザーのブラウザに送信します。この文字列は、リクエストごとに保存され、ページに配信されます。そのため、ランダムな値のリクエストがある場合、サーバーはそれが他の識別パラメーターと一致するかどうかを確認し、一致する場合はログインしたユーザーとして受け入れます。
これは、さまざまな方法で実装できる(そして実装されてきた)ので、非常に幅広い質問です。それらは一般的にブラウザに永続的なクッキーを保存することを含みます、そしてここにいくつかあります。 Cookieには次のものが含まれる場合があります。
「Remember Me」機能の大きなセキュリティリスクは何ですか?主に、ユーザーに遠くまで有効なCookieを提供していること、およびそのCookieが悪用された場合の不正使用の可能性がはるかに大きくなっています。したがって、これを念頭に置いて、このCookieを保護するように注意する必要があります。たとえば、HTTPSは防御の最前線として使用する必要があり、Cookieはsecure
としてマークする必要があります。潜在的な乱用を抑制するために、ユーザーが不要になった有効なセッションを強制的に終了できるようにするステートフルモデルがある場合に役立ちます。
つまりtl; drは次のとおりです。資格情報はCookieに保存される場合とされない場合があります。それらが適切に暗号化されていない場合、これは重大なリスクです。これは、「記憶」機能がWebサイトに実装されている方法ではない可能性がありますが、疑わしい場合は、Cookieを確認してください。