初心者の質問があります-
Itisoftensaid クライアント側のCookieにプレーンテキストのパスワードを保存しないでください。 (私はWebブラウザーのCookieを想像していますが、これは一般的に当てはまるはずです。)しかし、単純なWebアプリでは、プレーンテキストのセッションIDをCookieに保存することがよくあります。
詳しく説明するために、このモデルを使用してサイトを保護することがよくあります。
ただし、このモデルを使用しないことを強くお勧めします。
最初のモデルが安全であるのになぜ2番目のモデルが安全でないと考えられるのですか?確かに、2番目のモデルでは、悪意のあるCookieリーダーがブラウザからパスワードを盗む可能性があります。しかし、どちらのモデルでも、悪質なキーリーダーがIOサブシステムからパスワードを盗む可能性があります。これが、2番目のモデルが使用されない唯一の理由です。または、クライアントにパスワードを保存する際に、私にはわからない、もっと大きな問題がありますか?
ありがとう!
2番目のモデルに対するいくつかのポイント:
パスワードの代わりにパスワードハッシュを保存する方がはるかに優れているわけではありません。パフォーマンスの問題は解決しますが、パスワードハッシュをリークしてブルートフォースする可能性があり、セッションを簡単に無効にしたり、複数の同時セッションを持つユーザーの場合。
前の回答に完全に同意します。ソリューションのセキュリティを評価するのに役立つ、もう少しコンテキストがあります。
最初のモデルは、Cookieを使用した典型的なセッション管理です。 すべての主要なユースケースをサポート セッションに必要。
2番目のモデルは Basic Auth にいくらか似ていますが、認証データが(HTTPOnlyフラグを設定せずに)リークするCookieを介してクライアントに公開される可能性がある点が異なります。 HTTPOnlyフラグが設定されている場合、基本認証に非常に近く、そのプロパティのほとんどを共有しています:信頼できるタイムアウトがない、SSOサポートがない、パスワードの漏洩、複数のセッションがないなど。
私は Web Authentication Guide をまとめて、どの認証方式があなたのユースケースに最適であるかを決定するのを助けます。見てみな!