【PHPで作る】初めての携帯サイト構築

第5回 携帯サイトでセッションを取り扱う

この記事を読むのに必要な時間:およそ 2.5 分

携帯サイトでのセッション管理

今回は携帯で会員サイトを作る時のベースとなるログイン状態の管理方法を見ていきたいと思います。セッションとはユーザーがサーバーに接続し,サイトを巡回している間アクセスしてきているのが同一利用者であることを認識するための仕組みです。この仕組みを利用することで,一度会員ログインが完了した利用者がサイトにアクセス中,継続的に自分だけの情報を見るといったことが実現可能になります。

図1 セッションの仕組み

図1 セッションの仕組み

セッションを維持するためには,セッションIDを利用します。通常セッション管理はアクセスしてきた端末に対してセッションIDを割り振り,ブラウザに対して割り振られたセッションIDを渡します。サイト側はそのセッションIDに紐付いた情報を保持しておき,アクセスしてきたブラウザのセッションIDを元に情報を引き出すといった仕組みになっています。

ブラウザがセッション管理を行う方法には大きく2種類あります。

  • Cookieに保存する
  • URLに付与する

Cookieを利用する方法は,ブラウザの一時的な情報保存領域にセッションIDを保持して,ユーザーには見えない状態でセッションIDのやりとりを行う方法です。URLに付与する方法は,ユーザーに見えるURLのパラメータとしてセッションIDをやり取りする方法になります。

セッションIDは視認できてしまうとセキュリティ上問題があるため,PCのWeb上では一般的にCookieを利用してセッションを管理しています。そのため携帯サイトでもCookieを使ったセッション管理を行いたいところですが,各キャリアの対応状況は次のようになっております。

各キャリアのCookieの対応状況

キャリア Cookie対応状況
docomo

Cookieが利用できない

au

Cookie利用可能
※端末ではなくサーバー側での保存となる
※SSL通信時は端末での保存となる

SoftBank

C型,P型はCookieが利用できない
W型,3GC型はCookieが利用可能

表からわかるようにdocomoが一切Cookieに対応していないこともあり,携帯ではCookieを前提としたセッション管理ができない状態になっています。そのため携帯では基本的にURLに付与するセッションIDで管理していく方法を利用する形になります。

セッションIDを付与する

セッションIDをURLに付与する方法は,phpの設定を触るだけで簡単に切り替えることができます。設定方法は次の通りです。

php.iniの設定

ini_set('session.use_cookies', 0);
ini_set('session.use_only_cookies', 0);
ini_set('session.use_trans_sid', 1);

「session.use_cookies」はセッションIDの管理にCookieを利用するかどうかの設定です。ここではCookieを利用しないので「0」を設定します。「session.use_only_cookies」はセッションIDの保存をCookieのみで行うかどうかの設定になります。Cookieを利用せず管理したいので「0」を設定します。「session.use_trans_sid」はURLに自動的にセッションIDを埋め込むかどうかの設定になります。利用するので「1」に設定します。

これでCookieを使わずにURLにセッションIDを付与する状態になりました。ただし先ほど述べたとおり,URLにセッションIDが付与されている状態はセキュリティ上問題があります。ほかのユーザーになりすまされる可能性もあるので,利用するケースをdocomoだけにするなど必要最小限にとどめ,セキュリティに対して十分に理解して利用する必要があります。

次項ではセッションはもちろん「かんたんログイン」の仕組みにも利用することができる「個体識別情報」について見ていきましょう。

著者プロフィール

荒木稔(あらきみのる)

京都出身。ホテルマンを経て,基幹システムの開発などに従事した後ウェブクリエイターとして独立。利用者にもっと近いサービスを提供したい想いから,携帯を中心とした企画/開発/執筆/講演活動を行う。近著に「PHP×携帯サイト デベロッパーズバイブル」(ソフトバンククリエイティブ)。家族のための携帯サイト「ファミリーモバイル」(http://www.fmob.jp)を立ち上げ現在に至る。

memokamihttp://memokami.com

コメント

コメントの記入