私はPHPで練習プロジェクトを行っており(フォーラムを作成しています)、ユーザーがログインしたままにするメカニズムを決定しようとしています.ユーザークラスを作成しました。これにより、ユーザーは(サインイン時に)認証されます.将来のユーザー アカウント関連の操作は、そのクラスを介して行われます (つまり、ユーザー関連の情報の取得、ユーザーが投稿/コメントを作成したときなど)。
ユーザーのログイン状態を維持するには、セッションを使用してユーザー オブジェクトをセッションに保存するのが最も簡単な方法のように思われました (セキュリティ上のリスクがあるため、Cookie ではありません)。特に大量のデータがシステムに保存されている場合は、システムに負荷がかかりません。
これに対する解決策を見つけようとした後、私は2つの選択肢を思いつきました:
ユーザー ID のみをセッションに入れ、ユーザー ID を介して毎回ユーザー オブジェクトを作り直します。ただし、データベースは毎回再クエリを実行する必要があるため、これも不適切な実装のように思われます。
セッションにユーザー ID を保存し (ユーザーが正常にログインしたら)、オブジェクト全体を Cookie に保存し、Cookie を使用する前に毎回、セッションのユーザー ID をセッションのユーザー ID と照合して Cookie を認証します。クッキー。Cookie がどのように機能するかはよくわかりませんが、いくつかの重要なユーザー情報がユーザー オブジェクト (つまり Cookie) に保存される可能性があるため、ここに何らかのセキュリティ リスクがありますか? クッキーが盗まれる可能性はありますか?
より良い別の選択肢はありますか?セッションや Cookie を使用する別の方法なのか、それともセッションや Cookie とはまったく異なる方法を使用するのか?