[PHP-users 33979] Re: クッキーを受け付けないUserAgent(日本のケータイに限らず)に対してもセッション管理しつつセッションハイジャックを防ぎたい
kunitsuji
tsujioka @ m-s.co.jp
2008年 8月 19日 (火) 00:30:27 JST
kunitsujiです。
よくわかりませんが、
最初にブラウザがクッキーを受け付けるかどうかをスクリプトでしらべて対応さ
れてはどうでしょうか?
>お世話様です。だいすけと申します。
>
>PHP 5.1.6です。
>
>php.ini では
>session.use_cookies = 1
>session.use_only_cookies = 1
>session.use_trans_sid = 0
>
>にしています。
>
>表題の通りなのですが、クッキーを受け付けないUserAgent(日本のケータイに
>限らず)に対しても、
>セッション管理しつつセッションハイジャックを防ぎたい
>と思っています。
>
>
>(1)(日本の)ケータイの場合:
>調べたところ、
>クッキーを受け取らないUserAgentが多く、
>その場合、端末固有ID(ただし、imodeの場合は、iモードID。「utn」だと毎回
>ダイアログが出てしまう)と
>IPアドレス制限によって防ぐのが常套手段だけど、
>クッキーを受け取るUserAgentもあるようです。
>
>で、クッキーを受け取るUserAgentの場合はクッキーを使ってセッションIDを管理し
>クッキーを受け取らないUserAgentの場合は、get or postでセッションIDを管理
>するようにしたいと思っています。
>
>これは、具体的にはどうやって実現できるのでしょうか・・・
>デファクトスタンダード的な方法はあるのでしょうか?
>
>●IPアドレス制限のやりかたは分かります。
>
>●で、fingerprintに、端末固有IDの情報を持たせるというのは想像できるのです
>が・・・ちがいます?
>
>●UserAgentがクッキーを受け取るか否かの判断方法が分かりません。
>
>●クッキーを受け取らない場合は、セッションスタートの前に、
>ini_set("session.use_only_cookies",0);
>ini_set("session.use_trans_sid",1);
>とする・・・で間違ってないでしょうか?
>
>●セッションハイジャックされていないとわかった時点で、
> session_regenerate_id(TRUE);
>するのが常套手段だとは思いますが、
>セッションID付きのURLをブックマークされた場合、
>そのブックマークからアクセスした場合、そのURL中のセッションIDは無効なので、
>セッションが途切れてしまうと思うのですが、どう対応すればいいのでしょうか?
>
>(2)PCの場合
>
>実は、2文字のドメインなのですが、IEのバグで、
>
>Internet Explorer が 2 文字のドメインに対して Cookie を設定しない
>(Internet Explorer 6 で、2 文字のドメインに対して SetCookie 関数が機能
>しません。 )
>http://support.microsoft.com/kb/310676
>
>というものがありまして。。。
>
>これに対応したいと思っています。
>
>やはり、毎回ログインさせて、ずっとpostメソッドで、セッションIDを持ち回る
>しか方法はないでしょうか。
>
>ただ、
>「この問題は Internet Explorer 6 Service Pack 1 で修正されております。」
>とのことなのですが、
>どうなんでしょう、今、SPをあててないIE6を使ってる人ってどのくらいなので
>しょうか・・・。
>割合がすごく少なければ、無視してしまおうとは思っているのですが。
>
>
>(3)(海外の)ケータイの場合:
>
>(これは今すぐではないですが)海外のケータイにも対応させたいと思っていま
>して、
>そうするとどうすべきでしょうか?
>
>以上、よろしくお願いいたします。
>
>_______________________________________________
>PHP-users mailing list PHP-users @ php.gr.jp
>http://ml.php.gr.jp/mailman/listinfo/php-users
>PHP初心者のためのページ - 質問する前にはこちらをお読みください
>http://oldwww.php.gr.jp/php/novice.php3
PHP-users メーリングリストの案内