[PHP-users 35338] Re: セッションハイジャックと session_regenerate_id() について

Ryo Hayashi ryo @ spais.jp
2010年 8月 21日 (土) 22:42:50 JST


林と申します。

> タイムアウトによって、再度ログインを促すような処理は、たとえ正規の
> ユーザーであっても、一定時間を経過すればセッションをリセットすることで、
> より安全にするための方法かと思いました。
> 現時点では、IPアドレスやユーザーエージェント等のチェックも、正当性評価の
> ためのチェック項目として利用できるという理解です。

”正当性”という単語は相対的なものですので、正当性の基準や対象となる要素が
何であるかはまちまちです。
タイムアウトも UA の評価もそれぞれ基準こそ違いますが、行っていることは正
当性の評価です。


> 更に別の角度からもチェックしなければ、正当性の評価としては不十分でしょうか?

HTTP がステートレスである以上、どのような手段を講じてもセッションハイ
ジャックの対策は確率論の域を出ることはありませんので、正当性の評価として
十分かどうかは要件次第です。


> セッションクッキーとは別にクッキーを用意し、そのクッキーと $_SESSIONに
> ワンタイム・トークンのようなデータをセットしておき、毎回照合する、等
> 考えてみたのですが、他にありましたら、教えてもらえますか?
> ※言われているポイントを私がまだ理解していない可能性もあります。

前述の通り PHP の実装で根本的なところをどうこうできるわけではないので、
SSL を使うなどされた方が良いと思います。


PHP-users メーリングリストの案内