是否使用强大的命名组件来保护插件安全?
我正在寻找方法来防止未知方将他们自己的包含恶意代码的PlugIn插入到我的应用程序中。 我跑过这篇文章
.NET Assembly插件安全性
它向Strong Name建议程序集,并检查它是否以强加载的预期密钥命名。
但是,当我在本站查看有关强命名程序集的MSDN文档时
强大的组件
有一个警告说
不要依赖强名来保证安全。 他们只提供一个唯一的身份。
这是什么意思? 它们指的是什么安全性,这与我提供的上述堆栈溢出链接中的答案有关?
这是一个有趣的评论。 据我所知,一个签名的程序集表示1)它已经用某个键签名,2)签名后不能被修改
在第1点,钥匙的安全性非常重要,因为任何带钥匙的人都可以修改和重新签署装配。
在第二点上,我看到了一个成功修改程序集的例子,同时仍然通过了强名称验证。 这不是微不足道的。
因此技术上正确的是,您可以使用它来验证身份,但不一定是安全 - 或者说身份验证(插件已签名且未被篡改)与授权(代码本身有权执行特定操作)之间的区别。
身份验证与授权
链接地址: http://www.djcxy.com/p/22251.html