私は現在、私の学士論文のための非常にモジュール化されたプラグインベースのフレームワークに取り組んでいます。主なアイデアは、アプリケーション構造内にplugins
という名前のフォルダがあり、特別なインターフェイスIPlugin
に準拠するコンパイル済みプラグイン(たとえば.dll
-ファイル)をドロップできるということです。アプリケーションは、ユーザーが選択したプラグインを使用してタスクを実行します。したがって、PDFファイルで1回タスクを実行する場合は、PdfPlugin
を選択し、単語ドキュメントでは、DocPlugin
を選択します。プラグインが有害なコードを実行するのを防ぐ方法
出力もインターフェイスで定義されているため、すべてのプラグインは同じデータ構造を返します。実際の作業は各ライブラリごとに異なります。
ここで、アプリケーションはインターフェイスに定義されたメソッドを呼び出すだけです。 ParseDocument()
など、どのようにして(第三者によって開発された可能性のある)プラグインが有害なコードを実行するのを防ぐことができますか?
私は.NET3.5で作業しています(おそらく4に切り替わり、まだ決定していません)。C#。
プラグインにどのコードアクセスセキュリティのアクセス許可が必要かを問い合わせることはできますか? Androidのインテントのようなものと比較して?私。私はおそらく、私はプラグインがどのようなパーミッションを求めているのかを判断できるプラグインフレームワークが必要なので、プラグインをロードする前に確認を求めるプロンプトが表示されます。それとも、私のアプリでパーミッションを強制して、プラグインが失敗した/許可されたパーミッションの外で何かをしようとすると例外をスローするという点で、逆のことですか? – AaronLS
質問の範囲から外れるような「方法」を求めてはいませんが、これら2つの異なるアプローチのどちらがCASが適切であるか不思議です。 – AaronLS