2009-01-07 68 views
8

我一直都是这么多web应用程序的一部分,但从来没有使用CAS,也许从来也没有觉得需要使用相同的。为什么要使用CAS(代码访问安全性)?

何时需要使用CAS?人们是否真的在他们的应用中使用它?

+0

另请参阅http://stackoverflow.com/questions/1566934/is-code-access-security-of-any-real-world-use – 2009-10-22 08:26:45

回答

3

CAS在桌面应用程序中确实只是有用的(可以这么说),在这种应用程序中,您想要限制通过网络运行的应用程序(例如)能够在本地计算机上执行的操作。我发现,即使在这种情况下,与CAS混蛋也要求一个巨大的,毫无意义的头痛。默认配置通常是最明智的。

这种类型的模型对Web应用程序来说明显不太有用,因为您隐式信任应用程序中的所有代码。

+2

我不同意。我总是试图完全信任地运行桌面应用程序,因为客户端无论如何都容易受到非托管应用程序的攻击。 CAS可能成为问题的一个环境是托管的Web应用程序 - 某些托管提供商仅提供中等信任环境。 – Joe 2009-01-07 16:27:34

1

我从来没有见过它用过。

它的存在完全是为了让您可以说您的代码应该运行的最高级别的安全性。它更像是一种诉讼保护机制,而不是其他任何方面,因为您可以声称您的代码不可能被授权执行某个功能。

个人而言,我相信这是浪费时间,因为它不提供对底层操作系统的实际保护。

这里从微软一些关于它的更多信息:http://msdn.microsoft.com/en-us/library/930b76w0(VS.71).aspx

2

我曾经遇到过CAS的唯一地方是在Sharepoint它被用来限制什么在BIN目录中的自定义组件可访问(例如,共享点对象模型)。许多人认为CAS太复杂,不值得麻烦,因此他们最终将程序集投入GAC。但是如果你这样做,那么你最好仔细检查代码是否存在安全风险。

1

学习WPF时,我碰到过一次。它被用在this Sudoku教程中以加载来自其他用户的插件。为插件创建了一个特殊的应用程序域,只有很少的访问权限,并且使用.NET远程处理进行通信。本教程提供了一些有关安全插件加载的深入见解。

1

VSTO是一种有用的技术,可让您运行Office文档中使用.NET语言编写的托管代码,而不是使用VBA。它需要在客户端机器上以两种方式使用Caspol:

  • 权限Office从部署DLL的位置运行DLL。

  • 权限Office从Office文档的打开位置运行DLL。

我发现caspol是一场噩梦,我认为,就像Makefiles一样,caspol脚本也只有一次是从头开始编写的。

0

我与其他opionions这里– CAS是那些东西,可能是纸上谈兵一个同意,但我从来没有看到它严重的LOB应用程序中使用,我可能永远也不会。令我感到惊讶的是,人们经常在面谈–现在的上询问CAS相关的问题,认为是完全没有意义的。:)

3

我想我必须是在荒野孤独的声音,并不同意在这里的其他响应者。
正如我在几个月前对my answer中提到的一个类似问题所述,有一些具体的情况,其中CAS 要走的路。当然,这只适用于你非常注重安全性并且处理敏感系统的情况,并且考虑到这只是提供了一个额外的防御层,你可能不会到达你需要这个地方的地方您在应用程序中修复了所有其他严重问题。
同样,CAS使您能够限制应用程序可以执行的操作,而不仅仅是用户,并且以非常细化的方式进行操作。

0

CAS的一个例子是在WPF托管在浏览器应用程序(.xbap's)中。

问题在于如何保护客户端免受在浏览器托管的appdomain中运行托管代码的影响。

为此,WPF(更确切地说,是PresentationHost.exe)创建一个具有受限权限的应用程序域。在其边界内运行的代码使用有限的许可权限运行(例如,没有文件IO,没有注册表访问,只有安全打印等)。

在考虑CAS有用性时,需要考虑的另一个观点是有人在编写将安装在客户端计算机上的库的人的鞋子上。您如何保护客户端机器及其网络免受在浏览器中运行的部分可信代码的影响作为调用这些库的WPF应用程序的一部分? CAS帮助完成这个难题,提出了适当的要求,因此部分可信的代码只能访问安全公开的功能。

相关问题