1

私のASP.NETMVCアプリケーションには、エンドユーザーが編集できる多数のViewファイルが含まれています(これらはデータベースに保存され、VirtualPathProviderを介して読み込まれます)。

ユーザーがビューファイルを編集できるようにしたいのですが、セキュリティへの影響には注意が必要です。

ビュー内のコードが危険なタスクを実行できないようにする、ある種のコードアクセスセキュリティを適用する方法はありますか(つまり、最小限の信頼、渡されたリポジトリオブジェクトを介してデータベースにアクセスし、それ自体をレンダリングすることしかできません)。ファイルシステムへのアクセス、ホストプロセスのデバッグなどはありません)。

ビューの派生元のスーパークラスを制限できます(VirtualPathProviderにヘッダー<%@ Pageディレクティブを提供させ、レンダリング関数の本体のみをデータベースから返すことで)。したがって、このスーパークラスに属性を適用してCASを適用できますか、それともそれ以上のものですか。関与し、これは簡単な作業ではありませんか?

4

1 に答える 1

1

MVCは同種のAppDomainで実行されます。つまり、フレームワーク内のすべてのコードが同じアクセス許可セットで実行されます。そのため、特定のビューのCAS権限を下げる方法はありません。(MVCフレームワークが正しく機能しなくなるため、とにかくこれを実行する必要はありません。)

唯一の実行可能な解決策は、残念ながらこれは大変な作業ですが、危険なことを行うために使用できない独自のビュー形式を定義し、そのタイプのビューを提供する方法を知っているカスタムビューエンジンを用意することです。これにより、サーバー側のコード実行をブロックすることから、Javascriptの実行をブロックしようとすることまで、「危険」を好きなように定義することができます(これはそれ自体では非常に難しい作業です)。

于 2012-08-14T03:14:49.750 に答える