【问题标题】:Is calling process.start a security risk from an azure worker role?调用 process.start 是否存在来自天蓝色工作人员角色的安全风险?
【发布时间】:2012-10-20 00:45:58
【问题描述】:

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

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

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

然后我开始改为使用CA2135,解决方案似乎是添加 SecurityCritical 属性。

但后来我又拿到了 CA2122。

这两种情况都有问题吗?在什么情况下会出现这种情况?如何确定我没有引入安全问题?

【问题讨论】:

  • 第二个CA2122是在同一个方法上,还是在调用者上?
  • 我认为是同一种方法

标签: security permissions .net-4.0 fxcop


【解决方案1】:

SecurityCritical 应该扮演与 LinkDemand 等效的角色以获得完全信任:

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

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

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

不再提供对链接需求保护的不安全访问 会员。

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

【讨论】:

  • 我找到了支持这一点的this
猜你喜欢
  • 1970-01-01
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多