セッション固定化攻撃(セッションフィクセーション)とは、相手のセッションIDを乗っ取り、その利用者本人に成りすましてしまう攻撃法です。
セッションハイジャックという用語もありますが、セッションIDの乗っ取り方が違います。固定化攻撃はあらかじめ用意してあるセッションIDを相手に仕掛け、相手があるサイトにログインした時に、攻撃者がその相手に成りすましてしまいます。ハイジャックの方は、その名の通りネットワーク上の盗聴などによって相手のセッションIDを奪う方法です。
対策としては、利用者がログインした直後にセッションIDを再作成することです。
セッションIDの再作成は、session_regenerate_id()関数を利用します。
引数にtrueを指定すると(PHP5.1.0以降)、それまでのセッションデータが破棄されるので、セキュリティの面においても安心です。
参照ページ
http://php.net/manual/ja/function.session-regenerate-id.php
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php session_start(); $old_sessionid = session_id(); session_regenerate_id(true); $new_sessionid = session_id(); echo "古いセッション: $old_sessionid<br />"; echo "新しいセッション: $new_sessionid<br />"; ?> |
実際に利用した例は以下の関連ページをご参照下さい。