0

ASP.NET MVC アプリケーションで個々の (動的) ページを保護したいと考えています。

完全な認証システムを使用したくありません。サイトの管理者には既にフォーム認証を使用しています。代わりに、これは特定のユーザーのパスワードを含むページへのリンクを送信できるようにするためです。

私が現在これを処理している方法は、有効なパスワードが送信されたときに、ページ ID (Guid) とそのセッション ID を含む暗号化された Cookie を作成し、それらをページにリダイレクトすることです。「Page」コントローラ アクションで、この Cookie を検証します。

最初の質問は、これが最善の (最も安全な) アプローチですか (フォーム認証を使用することを除けば) ですか?

2 番目の質問です。フォーム認証で暗号化を実行するために使用されるマシン キーを読み取ることはできますか、それとも FormsAuthentication を使用して Cookie を暗号化することはできますか?

展開する前に常に新しいマシン キーを生成するため、すべての暗号化で同じキーを使用した方がよいでしょう。

[アップデート]

マシン キーにアクセスする方法については、http://rich-rogers.com/archive/asp.net-c-sharp-encrypt-hash-using-machinekey-valuesで回答を見つけました。

【アップデート2】

この質問をした後、彼らがアクセスできるページのリストを維持する必要があるため、現在のセッションにこれらを保存するだけの方がよいと思います。有効期限のあるセキュリティ トークンのリストを保存できます。私はすでにセッションのラッパーを持っているので、これも簡単に単体テストできるはずです。

4

1 に答える 1

1

Cookie キーを本当に安全にするには、SSL ページでのみ使用できるようにする必要があります。

    Request.Cookies[cookieName].HttpOnly = true;
    Request.Cookies[cookieName].Secure = true;

また読む:一部のハッカーはユーザーから Cookie を盗み、その名前で Web サイトにログインできますか?

于 2011-04-06T12:21:11.527 に答える