Dependency injection 如何使用Ninject仅从受信任的源加载程序集?

Dependency injection 如何使用Ninject仅从受信任的源加载程序集?,dependency-injection,inversion-of-control,ninject,.net-assembly,Dependency Injection,Inversion Of Control,Ninject,.net Assembly,我有一个ILog接口,它有多个实现。一个将写入数据库,一个在Windows事件日志上,另一个在xml文件上,一些在不同供应商的文本文件上 此接口的实现是使用Ninject动态加载的。随着越来越多的黑客和恶意软件出现在某些网络上,以及最近关于这些黑客和恶意软件的新闻,我想知道是否有一种方法可以将程序集过滤为仅受信任的程序集 我们试图阻止某人创建自己的接口实现,并将dll放入bin文件夹,然后他们就可以访问我们的信息流 请注意,我们加载遵循ILog接口的程序集。尝试阻止这种情况是毫无用处的。如果某个

我有一个ILog接口,它有多个实现。一个将写入数据库,一个在Windows事件日志上,另一个在xml文件上,一些在不同供应商的文本文件上

此接口的实现是使用Ninject动态加载的。随着越来越多的黑客和恶意软件出现在某些网络上,以及最近关于这些黑客和恶意软件的新闻,我想知道是否有一种方法可以将程序集过滤为仅受信任的程序集

我们试图阻止某人创建自己的接口实现,并将dll放入bin文件夹,然后他们就可以访问我们的信息流


请注意,我们加载遵循ILog接口的程序集。

尝试阻止这种情况是毫无用处的。如果某个恶意软件已经可以写入应用程序文件夹,则所有“过滤”非法DLL的尝试都将失败。例如,攻击者可以简单地替换.exe,并将在用户上下文中运行,并且可以执行应用程序可以执行的所有操作。

尝试阻止这种情况是毫无用处的。如果某个恶意软件已经可以写入应用程序文件夹,则所有“过滤”非法DLL的尝试都将失败。例如,攻击者可以简单地替换.exe并在用户上下文中运行,并且可以执行应用程序可以执行的所有操作。

请添加当前用于加载这些程序集的逻辑(代码)。我不明白你所说的“我们加载遵循ILog接口的程序集”是什么意思。这个问题对ninject不是很具体。Ninject没有提供这样的功能,但它只是一个大会签名和识别的一般问题。因此,您应该看一看,可能也会感兴趣,请添加您当前用于加载这些程序集的逻辑(代码)。我不明白你所说的“我们加载遵循ILog接口的程序集”是什么意思。这个问题对ninject不是很具体。Ninject没有提供这样的功能,但它只是一个大会签名和识别的一般问题。因此,你应该看一看,也许也应该看一看,而且看起来很有趣,你实际上没有抓住要点。如果攻击者按照您的建议操作,则很容易被检测到。我们试图阻止的是有人放了一些可能在很长一段时间内不被注意的东西。你在这里描述的攻击者是那种到处留下痕迹的新手类型。我们正在阻止的是那些可以在不被注意的情况下注射自己的聪明人。就像您的应用程序中现在显示的一样。:)@syntaxerror“我们正在阻止的是那些可以在不被注意的情况下进行自我注射的聪明人”。这正是不会创建恶意插件的攻击者的类型;它将以不同的方式攻击您的系统。你在试图解决错误的问题。也许吧,但当我问这个问题时,我其实在期待一个解决方案。你不仅没有提供解决方案——也许你不能——而且你认为这个问题是无效的。就像你现在做的那样。这对你来说可能是无效的,但对我来说不是,当然对那些试图帮助你的人来说也不是。如果你不知道答案或者没有更好的主意。你最好不要告诉别人。你实际上没有抓住重点。如果攻击者按照您的建议操作,则很容易被检测到。我们试图阻止的是有人放了一些可能在很长一段时间内不被注意的东西。你在这里描述的攻击者是那种到处留下痕迹的新手类型。我们正在阻止的是那些可以在不被注意的情况下注射自己的聪明人。就像您的应用程序中现在显示的一样。:)@syntaxerror“我们正在阻止的是那些可以在不被注意的情况下进行自我注射的聪明人”。这正是不会创建恶意插件的攻击者的类型;它将以不同的方式攻击您的系统。你在试图解决错误的问题。也许吧,但当我问这个问题时,我其实在期待一个解决方案。你不仅没有提供解决方案——也许你不能——而且你认为这个问题是无效的。就像你现在做的那样。这对你来说可能是无效的,但对我来说不是,当然对那些试图帮助你的人来说也不是。如果你不知道答案或者没有更好的主意。最好是自己留着。