[PHP-users 679] Re: セッションID を生成する仕組みについて
Series
php-users@php.gr.jp
Thu, 12 Jul 2001 16:54:55 +0900
シリーズです。
早速のお返事ありがとうございます。
> PHP4 のセッション ID は REMOTE_ADDR や REMOTE_PORT とは関係なく
>生成されます。
> 有限な数の集合である以上、完璧にユニークであるとは言い切れない
>と思いますが、事実上ユニークと考えても差し支えないでしょう。
事実上ユニークであるということには賛成です。
ただ、自分が第三者に組んだプログラムに関する説明を行う際に、
1セッションIDの発行を関数に任せている
2セッションIDの発行にはキーが不要
3しかし、その関数がどのような仕組みでセッションIDを発行しているかが
分からない
4したがって、そのセッションIDが本当にユニークなものであるかが
証明できない。あるいは、第三者によって生成することが不可能である
ということが証明できない。
ということでつまづいています。
乱数を使っている場合は、二つのコンピュータが
1同じタイミング
2同じ条件
で乱数を発行した場合は同じ値になる可能性があります。
もし、セッションIDの発行が単純な乱数によるものであれば、
第三者によって生成することも不可能ではないということに
なってしまわないでしょうか?
神経質な質問で申し訳ないのですが、PHP4が、セッションIDを発行する
仕組みをご存知でしたら教えていただきたく思います。
| まずは PHP のマニュアルのセッションの項をじっくり読んで
|みると良いでしょう。
http://www.php.net/manual/ja/ref.session.php
|session.cookie_lifetimeは、ブラウザに送信す るクッキーの有効期間
|を秒数|で指定します。値0は、"ブラウザを閉じ るまで"を意味します。
|デフォルトは、0です。
と、ありました。ありがとうございます。そして失礼いたしました。
|# 実は今書いている WEB+DB Press Vol.4 の原稿は、セッションネタだった
|# りします。(^^;
そうなんですか、それは是非購入させていただきます。