PHP4.0
から標準でサポートされているセッション管理機能の目的は、多数のユーザがアクセスする Webアプリケーションで、1人1人のユーザを区別することにあります。ID
をクッキーや URI
への埋め込みで保存し、セッションID
を各ページで共有することによって、ユーザを判別することができるようになっています。この節では、セッション管理の仕組みについて解説します。HTTP
プロトコルが使われます。HTTP
は、1回のリクエスト(要求)とレスポンス(応答)の間に、「接続→通信→切断」という一連の処理が行われます。ID
」 を発行します。そのセッションID
をクライアントのクッキー、あるいは URLを書き換えることによって同一ユーザとみなし、セッション中の管理が容易く行えることになります。ID
がそれぞれのページごとにクライアントの Webブラウザに送られ、Webブラウザが次のページをリクエストすると、Webブラウザから Webサーバに ID
を送り返します。ID
をセッション中に登録しておくことで、Webサーバはそのクライアントのセッションが継続していると判断できます。セッションID
を格納する変数さえ登録できれば、どのページでもいつまでも ID
を参照できるということになります。「$_SESSION」
を用います。$_SESSION[セッション変数名] = 値;
ID
と関連付けられ Webサーバ上に保管されます。初期値として特定のディレクトリに、名前の一部にセッションID
が含まれるようなファイルとして保管されます。当然、セッションの数だけファイルが生成されます。ID
を知られると、簡単に「なりすまし」というセキュリティ上の危険にさらされます。ID
をセットしてリクエストを行うだけで、認証を通さず他人に成りすますことができてしまうので、セッションID
を第三者が見ることができないよう最新の注意を払う必要があります。IP
アドレスを暗号化したり、セッション情報の中の IP
アドレスを保存して、違う IP
アドレスからリクエストを遮断するといった方法があります。ID
の漏洩は、以下のような要因で発生する場合があります。ID
をリクエストするRefere
を参照するSSL
の利用や、クライアントユーザへの呼びかけを行うことで、セッションID
の漏洩に対して細心の注意を払うようにしたり、また、セッション中部分的にパスワードを要求することも選択肢の1つでしょう。