[PHP-users 33986] Re: クッキーを受け付けないUserAgent(日本のケータイに限らず)に対してもセッション管理しつつセッションハイジャックを防ぎたい

D fj.groups @ gmail.com
2008年 8月 19日 (火) 14:39:57 JST


質問者のだいすけです。

ご回答ありがとうございます。

okuyama @ workgroup.jp さんは書きました:
> とりあえず、
>
>> ●クッキーを受け取らない場合は、セッションスタートの前に、
>> ini_set("session.use_only_cookies",0);
>> ini_set("session.use_trans_sid",1);
>> とする・・・で間違ってないでしょうか?

自分、おもいっきり勘違いしているかもしれません。
phpのマニュアルだと、

●session.use_cookies
⇒クライアント側にセッ ションIDを保存する際にクッキーを使用するかどうかを
指定します

●session.use_only_cookies
⇒このモジュールがクライアント側へのセッション ID の保存に Cookie のみ を
使用することを指定します。この設定を有効にすることにより、セッション ID
を URL に埋め込む攻撃を防ぐことができます。

●session.use_trans_sid
⇒透過的なセッション IDの付加をするかどうかを指定します

とありますが・・・

//-----------------------------------------------------------

●session.use_cookies
⇒1だと、【UserAgentがクッキーを有効にしているかいないかに関わらず】クッ
キーを使用するのでしょうか?
 それとも、UserAgentがクッキーを有効にしているならば、クッキーを使用
し、無効にしているならば、クッキーを使用しないのでしょうか?

●session.use_only_cookies
⇒これはあくまで、ウェブアプリのレスポンスについての設定であって、
 User Agentのリクエストに対する挙動には関係ないのでしょうか?
 つまり、これを1としても、「http://example.com/foo.php?PHPSESSID=
gfhghfdsjhg?」とすると、セッションハイジャックを許可する可能性があるので
しょうか?
 どうも、そのようにも読み取れてしまうもので。

●session.use_trans_sid
⇒これは、上の2つと設定とは無関係、というか排他的なのでしょうか?

//-----------------------------------------------------------

自分で試行錯誤してたら余計ぱにくってしまいました。

今までは

session.use_cookies = 1
session.use_only_cookies = 1
session.use_trans_sid = 0
だけで、ini_setでこれらの値を変えたことがたぶんなかったものでして。
>>
>> 海外は、キャリア判定で、クッキーはとりあえず解決可能かと思います。
海外のキャリア判定というのは、IPアドレス情報もどこかにのっているのでしょ
うか?
あと、「解決可能」というのは、クッキーをうけつけるか否かの判別が可能、と
いうことでしょうか?

以上、よろしくお願いいたします。
ありがとうございました。



PHP-users メーリングリストの案内