2009-07-08 79 views
5

Temporary ASP.NET Filesフォルダに対するアクセス許可が不十分なため、アセンブリのバインドに失敗しました。Temporary ASP.NET Filesフォルダへのユーザー書き込みのアクセス許可にセキュリティ上の問題がありますか?

アプリケーションは、(Web.config)フォーム認証をImpersonate = TrueおよびIIS Windows統合認証で使用します。

ASP.NET Identity Matrixによれば、これはWindowsIdentityがDomain \ UserNameに解決され、ASP.NET Required Access Control Lists (ACLs)に従って、WindowsIdentityにTemporary ASP.NET Filesフォルダに対する読み取り/書き込みアクセス許可が必要であることを意味します。

Fusionログビューアを使用すると、このフォルダに対する読み取りアクセス権のみを持つDomain \ UserName(セキュリティの "Users"グループに属します)がアセンブリの書き込みに失敗したことを確認できます。

質問は以下のとおりです。

は一時的なASP.Net Filesフォルダへの書き込み権限を割り当てるのいずれかのセキュリティへの影響はありますか?

このようなサーバー構成の変更は一般的に使用されますか?そうでない場合、WindowsIdentityはこのweb.config設定の組み合わせに対してDomain \ UserNameを解決するのはなぜですか?このコンテキストではこの組み合わせを使用しないでください。

注:この問題は、管理者以外のユーザーが最初にページにアクセスする場合にのみ発生します。アセンブリが既にコンパイルされており、管理者ユーザーがそのページにヒットしたために一時的なASP.NETファイルに格納されている場合、後続のユーザーには問題はありません。アセンブリをGACに配置することは望ましくありません。

+0

このIIS6またはIIS7ですか? – Kev

答えて

1

ASP.NETには、Temporary ASP.NETファイルフォルダへの書き込み権限が必要です。そのフォルダにはアクセス許可を与え、c:\ windowsフォルダ内にはアクセス権を与えないようにしてください。

このMSDN article about securing ASP.NET applicationsは、ASP.NETプロセスIDへの一時コンパイルディレクトリを完全に制御することを推奨しています。一時ファイルは次のディレクトリに作成され、コンパイルされ、デフォルトでは

:私は、関連する部分を引用しました

% WINNT%\ Microsoft.NET \ Frameworkのバージョン{} \ ASP.NETの一時ファイル

アプリケーションごとにtempDirectory属性を使用して場所を指定できますが、セキュリティ上の利点はありません。

注要素に指定されたASP.NETプロセスIDには、一時コンパイルディレクトリに対するフルコントロールアクセス権が必要です。

+0

(リンクの先頭に「msdn」を追加する必要があります) はい、この場合、web.configの設定はDOMAIN \ User(構成された偽装)に書き込みアクセスが必要であり、これにはどのようなセキュリティの影響がありますか。 ASP.NETプロセスは、このアセンブリバインディングの一部として考えていません。 –

関連する問題