1つだけ過去を変えられるとしたら?

いつもお世話になりますm( __ __ )m

質問の前に前提条件としてセッションによるログインサイトなどは、以下のようなやり取りを行っていると認識しています。

1. サーバーからクライアントにセッション ID を発行する
2. クライアントのクッキーにセッション ID が保存される
3. 以降、クライアントがサーバーにアクセスするとクッキーに保存されているセッション ID が一緒にサーバー側に送信され、サーバー側で保存しているセッションデータと関連つける。

ここまで間違っていたらご指摘ください。

以下、質問です。
上記の仕組みを PHP などを用いて既存のセッション関数を使わず自作するとした場合、以下のシーケンスで同等と考えてよろしいでしょうか?

1. サーバー側で乱数などを用いてセッション ID を独自に生成する
2. Set_Cookie 関数などでクライアントのクッキーにセッション ID を保存する。
3. 以降、クライアントのクッキーからセッション ID を取得し、サーバー側でその値を元に DB などから値を取り出す。

私には前者と後者が全く同じ処理に見えるのですが、違うのでしょうか。それとも同じなのでしょうか。と言ったところが聞きたいと考えています。

以上です。
よろしくご教授くださいm( __ __ )m

A 回答 (2件)

セッションIDを生成するのに


rand()関数を使って乱数を生成するのではなくて
uniqid()関数でユニークキーを作った方が良いでしょう。

後、クッキーが使えない環境下での考慮をどうするか。
PHP標準機能のセッション機能だとその場合はURLに添付する形がとられる。
セッション時間終了後のサーバ側のセッション情報はどうするか?
破棄するのか。DBにそのまま残すのか?
    • good
    • 0
この回答へのお礼

回答ありがとうございました('◇')ゞ

uniqid 関数の仕様調べました。
使って見ようと思います!

お礼日時:2009/09/10 00:05

自分もその流れで大丈夫だと思いますよ。



乱数を用いてって書いているので大丈夫だとは思いますが
セッションIDを自分で発行するときは、推測されないよう
簡単にぶつからない用に注意してください
    • good
    • 0
この回答へのお礼

回答ありがとうございました('◇')ゞ

&アドバイスもありがとうございました!

お礼日時:2009/09/09 22:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報