私は情報セキュリティ コンサルタントとして Web アプリケーションの脆弱性をテストしたセキュリティのバックグラウンドを持っています。私は webdev として働き始めたばかりで、Codeigniter で書かれた最初のプロジェクトで忙しいです。
ユーザーが有効かつアクティブな2つ(またはそれ以上)の同時セッションを持つことができる複数の同時ログインの問題を解決しようとしています。これを行う方法は考えていますが、CI の経験がないので、より良い、またはより「公式な」方法があるかどうかを知りたいです。また、DB の ci_sessions テーブルに変更を加える必要がありますが、CI がそれをどのように処理するかはわかりません。
現時点では、セッション データに DB を使用しています。私の計画は、ci_sessions テーブルに追加の列を追加することです。これは、ユーザーの電子メール アドレスを格納する列です (認証後)。つまり、ユーザーが正常にログインするまでは NULL であり、その時点でユーザーの電子メール アドレスが保存されます。
計画は、ログイン時に提供された資格情報の有効性を確認し、それらが正しい場合は、同じ電子メール アドレスに対応する他のセッションのセッション テーブルを検索し、それらを削除することです。ユーザーの他のセッションが削除されると、有効な認証済みセッションを示す電子メールとセッション データが設定されます。
これはこれを行うための最良の方法ですか?
編集: もちろん、CI が新しいセッションに電子メール アドレスを設定しないため、CI が更新する代わりに現在のセッションの新しいセッション ID を作成する場合、これは機能しません。ソースに修正を加える必要があります...