2011-10-20 11 views
3

メンバーエリアの登録/ログインシステムを作成しました。ユーザーがログインすると、データベースからユーザーに関連付けられたデータを取得するために使用できるセッション変数を保存します。メンバーエリアでのセッションの保存

何らかの方法で変数を暗号化する必要がありますか?変数として必要なデータは、ユーザー名かIDのいずれかになりますが、これが最適ですか?

とにかくセッションIDを再生成する必要がありますか?

+0

セッションデータはサーバー上に保持され、ユーザーがインターフェイスを提供しない限り、セッションデータはユーザーから見えないし、アクセスできません。デフォルトでクライアントに格納される唯一のものは、セッションのID文字列です。 –

答えて

0

成功したログイン/ログアウト後にセッションIDを再生成する必要があります。セキュリティ上の理由から、重要なデータの変更(重要なデータの変更、アカウントの削除、注文の送信など)が必要な場合は、パスワードを要求することをおすすめします。

AurimasLが述べたように、サーバー側のセッションデータについては心配する必要はありません。あなたが共有ホスト上にある場合、その後いくつかのセキュリティの側面があるので、私は、この読書をreccomend:http://phpsec.org/projects/guide/5.html

1

セッション内のデータストレージは「安全」とみなされるため、暗号化を解除する必要はありません。

0

セッションIDはクライアントのマシン上にクッキーのように保存され、1回のリクエストごとにセッションIDがサーバーに返されます。 PHPが要求を受け取った後にセッションに読み込む情報をPHPが決定する方法です。

セッションはクライアント上ではなくサーバー上に存在するため、その中に保存されている情報が安全であるかどうかに関して、session hijackingについて心配する必要があります。あなたの質問への答えはいいえ、私はセッションに格納されている情報を暗号化しようとしないでしょう。

0

怒鳴るコメントに加えるだけ、

は、セッションを作成すると、ご使用のサーバー用に高価であることに注意してくださいアプリ。時には、良いアイデアは、セッション内のIDと他の情報をクッキーに保存します(ユーザー名としてセキュリティが必要ない情報)。

+0

MySQLなどの永続ストアにデータを格納する際のこのコストは、キャッシュ・レイヤー(memcachedまたはtokyoなど)を実装し、セッション・データを格納することによって回避できます。 –

関連する問題