2012-02-24 72 views
0

私はアプリケーションのログインシステムで作業していますが、私はどの情報を保存すべきかわかりません。現在のところ、ユーザーのIDはセッション変数にのみ格納され、その変数が設定されている場合は、必要なすべての情報を含むデータベースからユーザーがロードされます。しかし、私はまた、私がクッキーを必要とする「私を覚えている」オプションを持っていたいと思います。ユーザーIDを保存するだけであれば、誰かがIDを変更して別のユーザーになる可能性があるため、危険です。私の考えは、現在、これを行うことです。PHP:情報をクッキーに保存する安全な方法は?

$array = array($user['username'], $user['pass']); 
      serialize(base64_encode($array)); 

クッキーが設定されたのであれば、私はそれをアンシリアライズし、パスワードとユーザー名(パスワード自体はMD5でハッシュされる)を持つユーザーを見つけるだろう。 しかし、これはあまり安全ではないと思います。クッキーを安全にするためにクッキーに保存する必要があるものは何ですか?それ以外の方法はありますか?

答えて

1

パスワードをクッキーに入れる代わりに、そこからハッシュを作成して保存することができます。また、データベースにハッシュを保存するので、クッキーを比較するときにパスワードが公開されないようにユーザー名とハッシュが一致する必要があります。

MD5で簡単なハッシュを作成できます。

+0

あなたは全体の質問を読まなかった。とにかく、私は既にクッキーに保存される前にパスワードをハッシュしています。クッキーをチェックすると、ハッシュされたパスワードを使ってユーザーにログインします。それは安全だという意味ですか? – ItsGreg

+0

@cillosisは、ほとんどの場合、セッションデータをランダムなハッシュと共にデータベースに保存することを意味していました(セッションのハイジャックを容易にするため、ユーザーデータをクッキーに保存しないでください)。ハッシュはクッキーに格納されているので、クッキーが存在し、有効であればセッションデータを復元できます。また、md5は安全とはみなされません。 – Alasjo

関連する問題