我一直在使用ServiceCollection对象将时间投入到.NET core和依赖注入模型上。
有没有办法保护已添加到集合中的服务实现的完整性?
我想知道我添加的服务的原始实现在运行时的某个时候没有被修改或替换。
在安全性方面,如果我是一个知道我在做什么并且存在远程代码执行漏洞的攻击者,我可以替换关键服务实现,并旨在通过某种持久性形式进行隐藏。
在万无一失的情况下,如果我有一个大型项目,我不想去调试为什么出了问题,以找出开发人员取代了广泛使用的服务实现。
有什么建议吗?也许有一些保护措施可以防止这种情况,或者只是不是一个问题?
您可以手动实现IServiceCollection
,定义一个类,并List<ServiceDescriptor>
实现接口中声明的所有方法。
然后,修改可能更改注册表项目值的方法,添加通知操作以确定值是否更改。