调用process.start是否存在来自天蓝色工作者角色的安全风险?

时间:2012-10-30 16:03:10

标签: security permissions .net-4.0 fxcop

我们在Azure中有一个辅助角色,它使用Process.Start启动后台进程(托管我们需要运行的本机应用程序)

由于链接需求,FxCop给我一大堆CA2122错误。当我尝试添加此属性时:

[PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust")]

然后我开始得到CA2135,其解决方案似乎是添加SecurityCritical属性。

然后我再次获得CA2122。

这些都是问题吗?在什么情况下他们可以,我怎么能确定我没有引入安全问题?

1 个答案:

答案 0 :(得分:1)

SecurityCritical应该为完全信任执行与LinkDemand相同的角色:

  

SecurityCriticalAttribute相当于完整的链接需求   信任。标有SecurityCriticalAttribute的类型或成员可以   只能由完全信任的代码调用;它没有必要   特定权限。它不能被部分受信任的代码调用。

Ergo,我建议添加SecurityCritical(以满足CA2135的需求)并抑制CA2122,这可能只是微软忘记在代码分析中考虑他们的新解决方案。

CA2122的目标是确保方法......

  

不再提供对受需求保护的链接的不安全访问   构件。

一旦添加了SecurityCritical(确保成员只能由完全受信任的代码调用),情况就不是这样了,所以第二个CA2122是误报。