25

MSDN FileSystemWatcherクラスページには、次のクラス属性を持つ例が含まれています。

 [PermissionSet(SecurityAction.Demand, Name="FullTrust")]

これの目的は何ですか?いつ含めるべきか、含めないべきですか?

FileSystemWatcherクラスのヘルプページは次のとおりです:http: //msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

4

1 に答える 1

23

このFileSystemWatcherクラスには、無制限のCAS権限に対するリンク要求があります。これは、直接の呼び出し元(つまり、クラスを直接消費している場合はコード)が無制限のアクセス許可を持っていることを確認することを意味します

残念ながら、リンクデマンドを使用すると、間接的な呼び出し元(つまり、コードを呼び出すコード)のアクセス許可がリンクデマンドによって検証されないため、潜在的なセキュリティホールが発生します。これは、権限が制限されている間接的な呼び出し元が、信頼性の高いコードを操作して、他の方法では実行する権限がなかった場合に代わって不正なことを実行できる可能性があることを意味します。

この種の攻撃を防ぐ方法の1つは、同じアクセス許可に対する独自の完全な要求を、リンク要求を持つタイプまたはメンバーを消費するコードに適用することです。これにより、間接的な発信者は同じ許可要求を受けるようになり、それによって、自分ではできなかったであろうコードを介して何もできないようになります。のMSDNサンプルコードは、FileSystemWatcherこの種の完全な要求のアプリケーションを示しています。

于 2010-05-26T16:32:27.240 に答える