Codeigniter で「Remember Me」機能を構築しています。通常、ライブラリ/プロジェクトがトークンを使用してユーザーに Cookie を設定していることがわかります。このトークンはデータベースに保存され、ユーザーが Web サイトにアクセスするたびに比較されます。
Codeigniter では、セッションの有効期限を設定できますが、これにより、別のアプローチを試すようになりました。これが私が行ったことです。
- config の session_expiration を 0 (無限セッション) に設定しました
- ユーザーが「Remember me」をオフのままにした場合、セッションに 2 時間の時間を設定し、ウィンドウを閉じるとセッションが破棄されます。
したがって、私のログインコードは次のようになります。
if (!$this->input->post('remember_me')) {
$this->session->sess_expiration = 7200;
$this->session->sess_expire_on_close = TRUE;
}
$this->session->set_userdata($session_data);
そして私の設定ファイル:
$config['sess_expiration'] = 0;
$config['sess_expire_on_close'] = FALSE;
プロジェクトでこのソリューションを使用している人はいません。これをテストしましたが、うまく機能しているようです。
だから、私の質問に対して、これは安全な方法だと思いますか? 知っておくべきセキュリティ上の危険はありますか? このソリューションと cookie+database トークンに関する意見はどれも素晴らしいでしょう。