阻止程序集更改 IPrinicpal
我的应用程序加载了很多不同的插件程序集。每个插件都可以将自己的服务添加到IoC容器中,也可以使用主应用程序提供的所有服务。
我正在从自制的安全解决方案转向使用 CAS(PrincipalPermissionAttribute 和从 CodeAccessSecurityAttribute 派生的自己的解决方案)。
我可以阻止加载的程序集更改 System.Threading.Thread.CurrentPrincipal (并以这种方式绕过我的安全检查)吗?
My application loads a lot of different plugin assemblies. Each plugin can add their own services into the IoC container and can also use all services provided by the main application.
I'm moving from a home brewn security solution to use CAS (PrincipalPermissionAttribute and an own one derived from CodeAccessSecurityAttribute).
Can I prevent the loaded assemblies from changing System.Threading.Thread.CurrentPrincipal (and in that way circumvent my security checks)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要拒绝 SecurityPermission\ControlPrincipal 对插件的权限。例如,可以通过将它们加载到应用程序域中来完成此操作,该应用程序域拒绝向所有不具有您的强名称签名的代码授予此权限。请参阅 http://blogs.msdn.com/b /shawnfa/archive/2005/08/08/449050.aspx 了解此方法的示例。
You'll need to deny SecurityPermission\ControlPrincipal permission to the plugins. This can be done, for example, by loading them in an appdomain which denies this permission to all code that does not possess your strong name signature. See http://blogs.msdn.com/b/shawnfa/archive/2005/08/08/449050.aspx for an example of this approach.