我已对我的应用程序运行安全检查,并收到以下警告:
'Parser.GenerateJeffpReport(string)'调用'Process.Start()' 它有一个LinkDemand。通过进行此调用,'Process.Start()'是 间接暴露给用户代码。查看以下调用堆栈 可能会暴露一种规避安全保护的方法:
我用Google搜索了一下,发现了这个问题:
what does this security warning mean (.Net Process class)?
我尝试按照推荐的答案进行操作,即设置我的方法:
[PermissionSetAttribute(SecurityAction.LinkDemand, Name="FullTrust")]
但是,我收到了以下警告:
Microsoft.Security:'Parser.ParseJeff(string)'受保护 “PermissionSetAttribute”的LinkDemand。在2级安全规则中 设置,它应该受到安全关键的保护。 删除LinkDemand并标记'Parser.ParseJeff(string)'安全性 关键的。
我该怎么办?无论如何,这一切的含义是什么?为什么这是一个安全问题?我没有在主题上找到微软文档。
答案 0 :(得分:2)
替换
[PermissionSetAttribute(SecurityAction.LinkDemand, Name="FullTrust")]
与
SecurityCriticalAttribute相当于完整的链接需求 信任。标有SecurityCriticalAttribute的类型或成员可以 只能由完全信任的代码调用;它没有必要 特定权限。它不能被部分受信任的代码调用。
答案 1 :(得分:0)
您也可以使用[PermissionSetAttribute(SecurityAction.Demand, Name="FullTrust")]
。