2011-01-13 11 views
1

私は電子メールアドレスをさまざまなデータベース(電子メールマーケティングシステム、内部の見込み客データベース、およびその2つのギャップを埋めるのに役立つ第3の共有DB)間のキー参照変数として使用するクライアントのWebサイト用にいくつかの追加機能を開発しています。PHPセッション変数で電子メールアドレスを使用するのは良いことか悪いのですか?

私は、訪問者の電子メールアドレスを$ _SESSION変数として保存すると、セキュリティ上の問題が発生する可能性があることを懸念しています。

これは問題ないのでしょうか、それとも別の方法があるのでしょうか?

答えて

3

$_SESSIONの変数の格納方法と、それを取得するためのクッキーの使用方法の違いを理解することが重要です。セッション内のすべてのデータはサーバーに保存されています(デフォルトでは/tmp)、リクエスト間で保持されます。デフォルトではセッションデータはクッキーに直接保存されません。

しかし、PHPは、特定のセッションでユーザーを識別する一意のIDを持つCookieを格納します(したがって、異なる要求で同じ情報を取得する方法)。

セッションIDを持つCookieが侵害された場合、別のユーザーがそのセッションで誰かを偽装することができます。これには、ユーザーが既にログインしている認証されたセッションが含まれます。この場合、電子メールアドレスを公開するよりも大きな問題が発生する可能性があります。

電子メールアドレスではなく、セッションで何らかのユーザーIDを使用することは悪い考えではありません。しかし、あなたのセッションにセキュリティを追加するための、おそらくより有用な、他にもいくつかの方法があります。常に*** _リアル*** _ escape_string、またはより良いまだ、より良いコネクタMySQLを使用して... PHP Session Security

+0

ありがとう、私はそれが事実だったのか分からなかった! –

0

変数に電子メールアドレスの一部を使用することができます。たとえば、電子メール[email protected]からjoeという名前を使用できます。次に、別のパラメータを使用して検索を実行します。

また、変数をデータベースに渡すときには常にmysql_real_escape_string()を使用し、適切な対策のためにバックスラッシュをいくつか追加します。

+0

ERR:

は、この質問を参照してください。 – Kris

+0

申し訳ありませんが、それは正しく見えていないことを知っていた。私は今それを変更しました。 – mickburkejnr

2

$ _SESSIONに値を格納すること自体が本質的に危険なことはありません。それは、誤ってブラウザに出力するコードを提供するかどうかによって異なります。

関連する問題