jyack回答ポイント 80ptウォッチ 7

よく、PHPでのセッションハイジャック対策として、認証後に「session_regenerate_id(true)」を行ったり、認証確認時にユーザ環境に依存する情報で簡易的なチェックを行う等の対策をよく拝見します。


そもそも認証済みセッションのセッションIDが盗聴された場合、「session_regenerate_id(true)」では、旧IDに紐付いた情報は破棄されることと、新しいセッションIDが発行される点はわかりますが、結局、そのタイミングが悪意をもったユーザの操作時点で再生成されない保証はできないような気がします。

その為その被害を軽減しそもそも発生確率を低減する対策として、ユーザ環境に依存する情報で定期的(操作毎?)にセッションIDの保有者と認証時点のユーザの同一性を確認しているという理解です。

そういった意味で、完全に防衛する仕組みは実現できないため、基本的には性悪説に則って考えて情報更新時には基本的にログイン状態を維持できる仕組みでも更新前や重要情報の表示前には再度パスワードによる認証を行うものだと認識しています。

いろいろなブログを拝見して考えていくと、結局自身が高じている悪意のあるユーザへの対策が完全では内容に思え、ちょっと悩んでおります。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2008-09-26 10:37:00
終了日時
2008-10-03 10:40:02
回答条件
1人5回まで

この質問のカテゴリ

この質問に含まれるキーワード

セッションハイジャック6PHP7798同一性9ログイン2397パスワード2211セッション439

人気の質問

メニュー

PC版