私は php アプリケーションを持っており、$_SESSION 自体を使用してユーザーのセッション変数を保存しています。それをデータベースに保存することの特別な利点はありますか?
これについて詳しく説明している、信頼できる/十分に調査された記事を探しています。私はまだ何も見つけることができませんでした。
私は php アプリケーションを持っており、$_SESSION 自体を使用してユーザーのセッション変数を保存しています。それをデータベースに保存することの特別な利点はありますか?
これについて詳しく説明している、信頼できる/十分に調査された記事を探しています。私はまだ何も見つけることができませんでした。
データベースに保存する方が良いと思います。
共有ホストでサイトをホストしている場合、PHP はすべてのユーザーのセッションを保存するために同じパスを使用しますが、それはフォルダー内にありません。
ユーザーとそのステータスを簡単に追跡できます。
この記事が役立つかもしれません。
データベースに保存する利点は、必要な限りデータが存在することです。
ブラウザは、セットアップ方法に従ってセッションを破棄するため、少し信頼性が低くなります。ただし、これに関する記事はまだ見つかりませんが、これは、このような状況の慣例として使用するものです.
データベースに保存するユーザーの詳細やアクティビティなど、長期的に保存する必要があるデータ。サイトへのログインやいくつかのコメントの投稿など、現在のワークスペースにのみ関連するデータはすべてセッションに保存できます。たとえば、ユーザー認証の詳細をセッションに保存して、ユーザーがログインしているかどうか、およびユーザーを正しいページにリダイレクトするかどうかを常に確認します。
これは、アプリケーション全体でアクセス権をチェックするときに驚くほど機能します。
私にとっては、$_SESSION のようにパブリックにアクセスできないため、ユーザーの詳細をデータベースに保存する方がはるかに安全です。
あなたがしたい場合は、私に同意しないでください。
さて、これは年齢に対する質問です。個人的には、私が私の時代に学んだことから。サイトが非常に大規模に活況を呈し始め、多数のミラー システムが実行されている負荷分散など、システムのさまざまな側面に複数のサーバーを使用し始める必要がある場合を除きます。または、過密なシステムのパフォーマンスを少し改善する必要があります.DB関連のセッションまたはファイルベースのセッションを使用する利点は、実際には何の違いもありません..私が間違っている可能性があることを認めてください。あなたと同じように、私は実際にどちらかを並べてテストする記事、投稿、その他を実際に見つけたことはありません。
それらはなりすましであると聞いていますが、これまでのところ、その概念の証拠はありません. その可能性を除けば、私はファイルベースに固執しています。コードイグナイターのようなシステムを使用していない限り、セッションは、そうでないよりも、それを使用した方が DB を処理するように見えます。
ある時点で、セッションに何かを保存する必要があります。すべてのセッション変数か、セッション テーブル内の行の ID だけか。その場合、適切に暗号化されていないセッションに保存されている ID を変更して、別のセッションをハイジャックするのはかなり簡単です。
このことを考慮:
フルセッションオプション。これには、ユーザー ID、ユーザー名、暗号化およびハッシュ化されたパスワードが保存されているため、ページが呼び出されるたびにログインが検証されます。他人のセッションをハイジャックするには、そのユーザー ID、ユーザー名、およびパスワード ハッシュを知り、セッション固有の暗号化を克服できる必要があります。
セッション + DB オプション。これには、データベース内の行を参照するセッション ID が格納されているだけです。必要なセッションを変更するには、セッションの暗号化を解除して、セッション ID に 1 を追加するだけです。その後、自分の後にログインしたユーザーとして認証されます。
ログインの詳細をセッションに保存してから、多くの追加情報がある場合はログイン関連のデータをセッションテーブルに保存できますが、追加のテーブルの必要性を取り除き、関連するテーブルからデータを抽出することもできますあなたが必要です。