なぜ、いつsession_regenerate_id()
PHPで関数を使用する必要がありますか?使用した後は常に使用する必要がありsession_start()
ますか?セッションの固定を防ぐためにそれを使用する必要があると読みましたが、これが唯一の理由ですか?
session_regenerate_id()
?関数名が言うように、現在のセッションIDを新しいものに置き換え、現在のセッション情報を保持する機能です。
これは主にセッション固定攻撃を防ぐのに役立ちます。セッション固定攻撃とは、悪意のあるユーザーがシステムの脆弱性を悪用して、別のユーザーのセッションID(SID)を固定(設定)しようとする攻撃です。そうすることで、元のユーザーとして完全なアクセスが可能になり、認証が必要なタスクを実行できるようになります。
このような攻撃を防ぐには、session_regenerate_id()
サインインに成功したとき(またはXリクエストごとに)にユーザーに新しいセッションIDを割り当てます。これで、彼だけがセッションIDを取得し、古い(固定された)セッションIDは無効になります。
session_regenerate_id()
ですか?symbeceanが以下のコメントで指摘しているように、セッションIDは、認証状態のすべての遷移で、認証遷移でのみ変更する必要があります。
参考文献:
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加