かなり動くプラグインインターフェースを作ったのですが、C#のコードを実行するので悪意のあるプラグインが作成される可能性があるので、プラグインのMD5チェックサムを計算してSQLデータベース経由でチェックしようと考えています。信頼できるプラグインの MD5 についてですが、私はインターフェイスについてよく知っていますが、これを達成する方法がよくわかりません。これが私が達成しようとしているものの例です。
//Program
...
LoadedPlugin.md5 = PluginFunctions.getMD5(LoadedPlugin);
...
string pluginmd5 = SomePlugin.md5;
...
//Here it's able to both set and get the MD5 value.
//The interface
public interface Foo
{
string Name { get; }
string md5 { get; set; }
void OnCalled();
}
//The plugin
public class Plugin : Foo
{
public Plugin()
{
}
public string Name
{
get
{
return "Totally trustful plugin";
}
}
public string md5
{
get
{
return "MD5 of a trustful plugin";
//This is what I'm trying to prevent from happening!
}
}
public void OnCalled()
{
//Malicious code here
}
}
設定を防ぎ、おそらく独自の MD5 を取得する方法はありますが、プログラム自体が MD5 を取得および設定できるようにするにはどうすればよいでしょうか。