セッションハイジャックを対策するために、session_regenerate_id
でセッションIDを更新する方法があります。
php
1<?php 2session_regenerate_id()
最近、改めてsession_regenerate_id
のドキュメントを見直した時に、次の警告がある事に気付きました。
PHP: session_regenerate_id - Manual
警告
現在の session_regenerate_id は、不安定なネットワークをうまく扱えません。 たとえば、モバイルネットワークや WiFi ネットワークです。 よって、 session_regenerate_id を 呼ぶことで、セッションの消失を経験するかもしれません。
すぐに古いセッションデータを破棄すべきではありませんが、 古いセッションID のタイムスタンプと、 アクセス制御は破棄すべきでしょう。 さもないと、ページへの同時アクセスによって、 状態の不整合が発生したり、セッションが失われたり、 クライアント(ブラウザ) 側のレースコンディションが発生したり、 不必要なセッションIDをたくさん作らなければならなくなるかもしれません。 セッションデータをすぐに破棄してしまうと、 セッションハイジャックの検出だけでなく、 防止もできなくしてしまいます。
お伺いしたい事
警告文の下記文言を対応するために、何か別の処理をする必要があるのでしょうか?
古いセッションID のタイムスタンプと、 アクセス制御は破棄すべきでしょう。
(phpの初期設定状態であれば)sessionは自動的に有効期限が着きますので、もし古いセッションが残っていれば削除されますので、
意図的にセッションを削除する必要はないかと思います。
また、環境によってセッションが消失する可能性があるのであれば、
昨今の環境に適したセッションIDを更新する方法が存在するのでしょうか?
現在の session_regenerate_id は、不安定なネットワークをうまく扱えません。 たとえば、モバイルネットワークや WiFi ネットワークです。 よって、 session_regenerate_id を 呼ぶことで、セッションの消失を経験するかもしれません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/27 09:40 編集