2010-11-29 2 views
5

FormsIuthentication.SetAuthCookie()を使用してCookieにUserId(データベースの主キー)のみを保存し、永続的なクッキー?ASP.NETでSetAuthCookie()を使用してuserIdのみを保存するのは安全ですか

私はユーザーがユーザー名を保存する例をたくさん見てきましたが、この(userId)は1桁または2桁の数字になる可能性があります。 私はそれをするべきですか?そうでない場合は、単にユーザー名を保存すれば、なぜ、もっとうまくいくのでしょうか?

答えて

4

それは安全でではありませんその値を暗号化せずに保存し、その値をCookieから読み取って、それを使用して後続のリクエストでユーザーのIDを認証する場合は、を使用します(この方法でユーザー名を使用すると安全ではありません)。

Cookieの値を変更するのは簡単ではなく、ユーザーは別のユーザーのIDを含むことができるため、安全ではありません。

ただし、ユーザーIDをFormsAuthenticationTicket.UserDataencrypt the ticketに保存すると安全です。

+9

この回答は完全に正確ではありません。 FormsAuthトークンの*全体*の内容は、ユーザー名/ユーザーIDなど、暗号化されて署名されているため、改ざんできません。 SetAuthCookieのパラメータとしてユーザー名の代わりにユーザーIDを渡しても、セキュリティプロパティーは基本的に正または負のどちらかに変更されません。 – Levi

+2

あなたは正しいです。質問をすばやく読んで、SetAuthCookieの使用に関する具体的な言及を見逃しました。 –

0

私は人々が(それの音による)だけでユーザーIDと多くを行うことができないと思います(これは、再び短い名前かもしれない)、またはデータベース内の主キーで

関連する問題