2011-11-14 4 views
2

私は、クッキーとセッションの基本的な考えがあると思います。クッキーはクライアントに保存され、セッションはサーバーに保存されます。しかし、私が知りたいのは、セッションをクッキーに比べて利用する利点は何ですか?セッションは単にページ間でデータを共有するために使用されますか?PHPのクッキーに対するセッションの利点

+2

これは2つの同じパズルです。セッションのIDを格納するためにクッキーを使用するので、*使用する*セッション*を知ることができます。 –

+0

@BrianRoach私は、OPが '$ _COOKIE'または' $ _SESSION'のいずれかの配列にデータを格納することを指していると思います – Phil

+1

実際には...あなたのことが分かりました。彼はセッションよりもむしろクッキーにデータを格納することを話しています。人々はまだそれをしているということは私には起こりませんでした.-D –

答えて

7

クライアントがデータを混乱させるようにしたくない場合は、セッションが良いアイデアです。例えば、現在のユーザーのユーザーIDを格納するためにセッション変数を使用することは問題ありません。しかし、クッキーを使用することは、途方もない賢い人が他のユーザーIDをスプーフィングして他のアカウントにアクセスできるようになるため、大きなセキュリティホールです。

-3

PHPセッションはクライアントブラウザのクッキーによって実装されます。

+0

クライアント側のクッキーは、PHPがセッションIDを追跡できるようにする2つの方法の1つです。もう1つはクエリパラメータによるものです。セッションデータは保存されていません*クライアント側 – Phil

1

セッション識別にCookieを使用します。重要な情報をすべてクッキーに入れることはありません。なぜなら、ユーザーはその情報を混乱させるからです。あなたのセッションのデータはより安全です。

1

データはローカルに(クライアント上に)保存されるため、セッションのデータがサーバーに保存され、(クライアントによって)変更できないため、Cookieのデータを変更することができます。

しかし、PHPセッションではブラウザにCookieが設定されているため、PHPはCookieのセッションキーを参照して対応するセッションを提供できます。つまり、誰かがあなたのセッションキーを取得した場合、ブラウザにクッキーを追加してセッションをハイジャックすることができます。

+0

"これは、誰かがあなたのセッションキーを取得した場合、ブラウザにクッキーを追加して、本質的にセッションをハイジャックすることを意味します。しかし、これはステートレスプロトコルのやむを得ない状況です。 –

2

セッションは、Cookieを許可するユーザーに依存しません。ユーザーがブラウザを開いている間にアクセスと情報の受け渡しを許可するトークンの代わりに機能します。セッションの問題は、ブラウザを閉じるとセッションも失われることです。したがって、ログインが必要なサイトがあれば、セッションとしてクッキーとして保存することはできず、訪問するたびに再ログインする必要があります。

もちろん、両方の世界のベストを得ることができます!それぞれが何をしているかを知ったら、クッキーとセッションの組み合わせを使用して、あなたのサイトをあなたが望むように正確に動作させることができます。

は参照してください。PHP - Sessions vs Cookies

sessionscookiesは、両方の一時的および長期的な情報の保持者としての役割を果たす一方で、情報を隠すことができるように、一時的な情報保持に役立つ:

+1

これがコピーされている場合(おそらくhttp://php.about.com/od/learnphp/qt/session_cookie.htmから)、ソースを引用してください。 –

0

http://php.about.com/od/learnphp/qt/session_cookie.htmを見てください。セッションとクッキーの違いが明らかになった後、ウェブサイトの正しい選択をすることはやや簡単です。セッションはクッキーよりも使いやすいように見えるかもしれませんが、クッキーのパワーと使いやすさを疑うことはありません。

これが役に立ちます。

0

両方を使用してください。

セッションを識別するためにのみクッキーを使用してください。クッキーデータはすべてのリクエストとともに送信されます(画像がWebサーバー上にある場合でも)。クッキー内のデータを最小限にすることは、データを送信するデータが少なくなることを意味します。

他のすべてのアプリケーションデータをセッションに格納します。セッションデータを小さく保つことを賢明にしてください。セッション中の大量のデータは、多くの異なるユーザーからの要求が多い場合には、サーバーのメモリ使用量を圧迫します。大きなデータをオブジェクトのUserオブジェクト、またはUserにリンクされた関連オブジェクトに格納します。

希望があれば...

関連する問題