やきにくとくにきや

WEBサービスとイベントに夢見るエンジニアの技術メモ、チラシの裏。そして焼肉たべたい

携帯サイトでhttpとhttpsのセッションを引き継ぐ

      2013/11/27

携帯用のECサイトを開発しているのだが、
一部のページがSSLだと問題なことに気付いた。

トップページ(http)

カートページ(https)

商品ページ(http)

等と移動した時、http通信の時とhttps通信の時でセッション的には
別サイトの扱いになってしまい、別々のセッションIDが発行されてしまう。

セッション自体はhttps通信の時にしか使わないのだが、
クッキーに対応していない携帯だとURLでページごとにセッションIDを
引き継がなければならないので、やはり都合が悪い。

全てhttps通信してしまうのも一つの手だが、リソースを食うし
あんまりにも横暴なので、

http://hoge.com/?PHPSESSID=○○

でURLにつけて渡したセッションIDをページの最初に固定で
セットするようにしてみた。

if(isset($_GET['PHPSESSID'])){
$sessionId = $_GET['PHPSESSID'];
}
session_start(session_id($sessionId));

問題なく動くんだけど、セキュリティ的にちょっと嫌である。

 - PHP