我制作了一个运行良好的插件接口,但是由于它执行 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。