2009-05-12 6 views
2

NTLM認証を使用するASP.Net MVCアプリケーションを作成しているため、ユーザーはサイトに登録する必要はありません。匿名アクセスが無効になっている場合、User.Identity.Nameをデータベースの所有権キーとして使用できますか。私は何をしたいことはUser.Identity.Nameの強さはどれくらいですか?

from station in db.stations where station.user == username select *; 

は、ユーザが誰であるかを確実に知るために、この十分なされているような検索を発行できるようにすることです、または厄介なユーザーが名前の文字列を偽装してアクセス権を得る可能性が何らかの方法があります彼らはしてはならないデータに?

答えて

4

名前はセッションから入力されるため、攻撃者はセッションCookieをスプーフィングしてユーザーのセッションを乗っ取ってアクセスする必要があります。 ASP.NETセッションCookieは、これを防ぐために暗号化されていますが、特定の攻撃者が無期限に暗号化を中断できないようにセッションを期限切れにする必要があります。 CookieをhttpOnlyに設定すると、ブラウザの悪質なスクリプトがCookieにアクセスするのを防ぐこともできます。

ASP.NET 2.0 Webサイトをセキュリティで保護するためのベストプラクティスは、referenceです。その多くはまだ適用されますが、MVCに変換する必要があります。

+0

私がWindows認証を使用している場合、クッキーは含まれていないと思われ、Kerbros認証をスプーフィングするのは非常に難しいでしょうか? –

+0

同じ原則が適用されますが、クッキーの代わりに交換しているチケットです。あなたが心配する必要があることの1つは、ユーザーがアプリケーションに入るためにログインしたセッションにアクセスすればよいことです。ユーザーは登録する必要がないため、ADに対してフォーム認証を実行することはできます。 – tvanfosson

関連する問題