什么是确保代码安全执行的组件

时间:2012-07-11 13:54:40

标签: c# .net

在采访中,面试官问我一个问题, 有哪些组件可以确保在.net中安全执行代码。我试过谷歌但失败了。任何人都可以给我答案或链接吗?

我找到了一个word文档。在那里我发现安全代码执行的组件是Assembly loader,代码验证器,JIT。这是对的吗?

3 个答案:

答案 0 :(得分:1)

查看CLR安全模型。微软有一篇很好的文章。

要点:

  

.NET Framework的公共语言运行库有自己的安全性   不受操作限制约束的执行模型   系统正在运行。另外,不像旧的校长   安全性,CLR根据代码的位置强制执行安全策略   来自而非用户是谁。这个模型叫做代码   访问安全性,在今天的环境中是有道理的,因为这么多   代码通过Internet安装,甚至可信用户也没有   知道该代码何时安全。

The Security Infrastructure of the CLR

答案 1 :(得分:0)

我的回答是Try-Catch块。您将希望按类型捕获异常,以便为您的用户提供有意义的输出(如果需要),但一般例外可以很好地用于内部测试。

try
{
    /*Some code which could throw exceptions.*/
}
catch (Exception e)
{
    Console.WriteLine("Error: {0}\nStack Trace: {1}", e.Message, e.StackTrace);
}

但是,我只是认为“安全执行”意味着不会崩溃。

答案 2 :(得分:0)

“安全执行代码”可能意味着许多事情。但我认为采访者要求代码访问安全性,这是.net环境的安全模型。

所有框架版本的CAS都不相同,这是一个很复杂的主题。基本上它允许或禁止基于程序集和代码表示法,程序集原点,信任级别等执行代码。

你可以在这里得到一些介绍:

2.0或3.5 => http://msdn.microsoft.com/en-us/library/c5tk9z76(v=vs.90

4.0或4.5 => http://msdn.microsoft.com/en-us/library/c5tk9z76(v=vs.100