• 締切済み

SESSIONとCOOKIE

はじめまして。 現在、下記環境で開発をしております。 winXP PHP5 smarty3 Mysql 開発は一般的な検索サイトです。 全て一人で行っているものなので規模は小さいものです。 ここで質問なのですが、今セッションとクッキーの使い方について自分で説明できなくなってしまっています。 実現できているからいい そういうつくりになっていて個人的にはあまりうれしくない状態です。 下記が僕の見解です。 【サーバー側の一時記憶領域。 セッション】 アクセス中、一時的に値を確保したい場合に使っています。 ・コンボボックスに表示する内容 ・検索結果の配列 ・会員情報 【クッキー】 クライアント側の記憶領域 クライアント依存があるものでクッキーが有効でない設定の人ものいそう、、 利用していません。 現状はクッキーは使用できていないのですが、インターネットなどで調べると、 ↓クッキー↓ クッキーとは、Webサイトの提供者が、Webブラウザを通じて訪問者のコンピュータに一時的にデータを書き込んで保存させるしくみ。 ↓セッション↓ 接続から切断までの通信の事 とありました。 この答えが全てだとは思いませんが、実際に値を一時的に格納するならどう考えてもクッキーが適任に思えてしょうがないのです。 ここで質問です。 場合による、となればそれまでかもしれませんが実運用されているシステムなど構築する場合、この二つの一時記憶領域をどのように使用するべきなのでしょうか? 持論、参考URLなどなんでも結構です。 よろしくお願いいたします。

みんなの回答

回答No.1

>>クッキーとは、Webサイトの提供者が、Webブラウザを通じて訪問者のコンピュータに一時的にデータを書き込んで保存させるしくみ。 そうですね、これに対してセッションは(セッション変数) Webサイトの提供者が、Webブラウザを通じて訪問者のコンピュータに一時的にセッションIDを渡して、そのIDに対する変数をサーバー上で管理するものです。 つまり両方ともクライアント側にデータがありますが、格納される情報がまるで違います。そのデータを改ざんされて困るようなデータはクッキーに保存してはいけません。 回答です。 【セッション変数で管理すべきもの】 ログイン情報 ユーザーID&パスワードを入力して Aさんとしてログインを済ませましたという情報を持ち歩く必要があります。 たとえばWEBメール(niftyとか)の画面にこの機能が無い場合 URLを直打ちしてしまえば見られてしまいます。 【クッキーで管理すべきもの】 ユーザーID(Nifty等のログイン) 後日再度入力する必要があり 万が一そのデータが第三者にわたってもそれだけでは利用できない そしてクッキーを利用できないクライアントでも問題がない状態の場合。

eclipsePG
質問者

お礼

早速のご回答ありがとうございます。 まず、質問返しになってしまい申し訳ないのですが、セッションIDを発行してクライアントを個人として認識できるということはわかります。 クライアントというか、「その通信」って事ですよね。 セッションIDがあれば「その通信」だとサーバーから見分けられる。 そして変数名は同じでも通信毎にプライマリな扱いになるのはセッションIDがあるからである。 うん、納得です。 >つまり両方ともクライアント側にデータがありますが、、、 ここが。。なんとも。 あっセッションIDのみクライアント側で保存する。 そういう事か! なるほど! クッキーにセッションIDを持たせて、そのIDで、、 なるほどです。そのIDでリクエストがあれば、サーバー側で認識できる。 そのIDにひもづく細かいデータはサーバー側に記憶される。 だから、セッションに格納しすぎるとサーバー付加が上がる。 なるほど。理解できました!(あってるのかな。。) あとは、おっしゃるとおりパフォーマンスなどとは別に 「セキュリティ」という角度で考えたときに 問題のあるものはセッション。 問題ないものは、クッキーにあずけちゃう。 そういう事ですよね! ありがとうございます! セキュリティ>ユーザービリティの優先順位で格納する場所の判断基準ができました。 自分の実装に確固たる理由があるというのはいいものです。 すっきりします。 丁寧な解説ありがとうございましたmm

すると、全ての回答が全文表示されます。

関連するQ&A