2

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

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

これは、ユーザーが誰であるかを確実に知るのに十分ですか? それとも、悪意のあるユーザーが名前の文字列を偽装して、アクセスしてはならないデータにアクセスできるのでしょうか?

4

1 に答える 1

4

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

ASP.NET2.0Webサイトを保護するためのベストプラクティスのリファレンスは次のとおりです。その多くは引き続き適用可能ですが、MVCに変換する必要がある場合があります。

于 2009-05-12T15:40:55.720 に答える