回答編集履歴

1

補足

2016/04/05 10:12

投稿

unau
unau

スコア2468

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- セッションを乗っ取るには、サーバから発行されるセッション ID を盗めばいいわけですが、言ってみれば会員制の施設に入る会員証みたいなもんですよね。普通のセッション乗っ取り攻撃犯は、どうにかしてこのセッション ID を盗み出すか、に血道を上げるわけですが、セッション固定攻撃というのは、悪意を持った人が攻撃対象の人に、セッション ID を指定してそれを使って攻撃対象のシステムにアクセスするように仕向けるわけです。そしてそのままログイン成功し、なおかつログイン成功してもセッション ID が変更されないようなら、ログイン後のセッションを乗っ取ることができるわけです。
5
+ セッションを乗っ取るには、サーバから発行されるセッション ID を盗めばいいわけですが、言ってみれば会員制の施設に入る会員証みたいなもんですよね。普通のセッション乗っ取り攻撃犯は、どうにかしてこのセッション ID を盗み出すか(会員証を盗む)、に血道を上げるわけですが、セッション固定攻撃というのは、悪意を持った人が攻撃対象の人に、セッション ID を指定してそれを使って攻撃対象のシステムにアクセスするように仕向ける(会員証を作っちゃう)わけです。そしてそのままログイン成功し、なおかつログイン成功してもセッション ID が変更されないようなら、ログイン後のセッションを乗っ取ることができるわけです。
6
6
 
7
7
  具体的には、たとえば、
8
8
 
@@ -20,4 +20,4 @@
20
20
 
21
21
 
22
22
 
23
- 問題は、セッション ID を外部から決められる、というところです。これも大きく二つに分けられ、「セッション ID を本当に外部から決めることができる」「発行されるセッション ID が容易に推測できる」があるかと思います。前者は、PHP の設定次第では、`?PHPSESSID=xxxyyyzzzz` とクエリにつけると、それをセッション ID として使ってしまう、というようなケースです。サーバ側では自分自身で発行した有効期限内のセッション ID 以外は突っぱねるべきです。後者は、セッション ID の生成方法が単純すぎる(たとえば、現在時刻に sha1 をかけただけ、とか) と、容易に推測できて有効なセッション ID を攻撃者が知ってしまう、というものです。
23
+ 問題は、セッション ID を外部から決められる、というところです。これ、普通に考えておかしいですよね。これも大きく二つに分けられ、「セッション ID を本当に外部から決めることができる」「発行されるセッション ID が容易に推測できる」があるかと思います。前者は、PHP の設定次第では、`?PHPSESSID=xxxyyyzzzz` とクエリにつけると、それをセッション ID として使ってしまう、というようなケースです。サーバ側では自分自身で発行した有効期限内のセッション ID 以外は突っぱねるべきです。後者は、セッション ID の生成方法が単純すぎる(たとえば、現在時刻に sha1 をかけただけ、とか) と、容易に推測できて有効なセッション ID を攻撃者が知ってしまう、というものです。