セッションハイジャック
セッション管理の不備
ウェブアプリケーションによっては、セッションIDをユーザーに付与することで、 管理を行っているサイトもあり セッションIDに不備がある場合、悪意のある第三者に不正に取得され、その利用者に なりすま し、利用されてしまう可能性があります。
これをセッションハイジャックといいます。
発生する可能性のある脅威
ログイン後の利用者のみが利用可能なサービスの悪性
ログイン後の利用者のみが編集可能な情報の改ざん
ログイン後の利用者のみが閲覧可能な情報の閲覧
実装例
sub getNewSessionId { my $sessid = getLastSessionId ('/tmp/.sessionid'); $sessid++; updateLastSessionId ('/tmp/.sessionid', $sessid); return $sessid; }
上記のプログラムでは、セッションIDが連番となり第三者からの推測が容易となります。
セッションIDが連番である場合、悪意を持ったユーザーが取得した1つ前のセッションが 有効である可能性があるため、ひとつ前のセッションIDを利用することで、他の利用者の セッションを乗っ取ることが可能となります。
解決方法
できるだけ、推測が可能となる値をセッションIDとして利用しないようにする。
(乱数等を利用したほうが安全)