SSLと非SSLではセッション管理が違うということなので。
httpsページからhttpページへ遷移した際、sessionを引き継ぐことができるかというご質問でしょうか。
PHPの場合、標準の session 関数を使っている限り、引き継ぐことができます。
ただ、これはセキュリティ上の問題をはらんでおり、詳しいことは「PHP: セッションにセキュリティ対策する」をご覧ください。
httpsページからhttpページへ遷移した際、sessionを引き継ぐことができるかというご質問でしょうか。
PHPの場合、標準の session 関数を使っている限り、引き継ぐことができます。
ただ、これはセキュリティ上の問題をはらんでおり、詳しいことは「PHP: セッションにセキュリティ対策する」をご覧ください。
なるほど。
httpsとhttpどちらもクッキーは送信されるので
session_idを引き継ぐことはできるけど、盗聴という観点から危険といういことですね。
httpsだからといってhttpで行っているsession_startの動きは代わらないということですね。
対策するとしたらhttpではクッキーを送らないようにする代わりに
httpsのときに何らかの共通IDをどっかに作る必要があると。
今までhttpでやってたものを一部httpsにしようかと
思っていたので一応動くということでよいでしょうか。
https と http が同じサーバ(場合によっては同じプログラム?)であれば,セッションは共有されますよ.
セッションは,cookie を使うほかに,URL に埋め込む事もできます.しかし,どちらの場合も,http 通信に於いては,暗号化されないので,傍受される可能性があります.
私の場合は,cookie を使って送られるセッションキーを毎回変えるようにしています.具体的には,
session_regenerate_id()
という関数を使います.
この場合,cookie や URL 経由のセッションキーはワンタイムなので,傍受されても,そのセッションキーは使えなくなっている可能性が高くなり,安全性が高くなります.サーバに対する負荷はあがります.
また,クライアントのセキュリティポリシーによっては,https で受け取った cookie を,http の際には送信しない事もあります.(URL の場合は,関係なくなりますね)
なるほど、同じサーバなら共有されるわけですね。
session_regenerate_id()を毎回呼び出してあげて、異なるセッションIDをもつ
クッキーを送りつけるようにすれば、傍受しても安全性は高くなるというわけですね。
これ使ってみようと思います。ありがとうございます!
なるほど。
httpsとhttpどちらもクッキーは送信されるので
session_idを引き継ぐことはできるけど、盗聴という観点から危険といういことですね。
httpsだからといってhttpで行っているsession_startの動きは代わらないということですね。
対策するとしたらhttpではクッキーを送らないようにする代わりに
httpsのときに何らかの共通IDをどっかに作る必要があると。
今までhttpでやってたものを一部httpsにしようかと
思っていたので一応動くということでよいでしょうか。