目录:
定义-代码访问安全性(CAS)是什么意思?
代码访问安全性(CAS)是一种安全机制,.NET框架的公共语言运行库(CLR)通过该机制可以限制托管代码执行具有有限权限集的操作。
CAS通过防止对受保护资源和操作的未授权访问来实施.NET框架中的安全策略。 与从用户那里获得用户凭据的传统安全方法不同,CAS旨在解决从包含漏洞和漏洞的外部资源获取代码时遇到的问题。 这些错误和漏洞可能使用户的系统容易受到恶意代码的攻击,这些恶意代码可能正在执行任务而用户并不知道。 CAS实际上知道并且仅允许给定用户代码可以执行和不能执行的那些操作。 此功能适用于所有以CLR为目标的托管代码。
CAS提供了基于证据的安全性,该安全性建立在Windows操作系统提供的安全性之上的一层上。 Windows是基于用户权限的,而CAS是基于程序集的证据的。 程序集包含安全策略中定义的权限,并构成允许代码执行必要操作的基础。
Techopedia解释了代码访问安全性(CAS)
CAS建立在以下要素之上,其中包括:
- 权限:这些是访问受保护资源或执行受保护操作所需的基本权限。
- 权限集:这是一组权限,例如“完全信任”,“没有”,“ Internet”,“本地Intranet”和其他。
- 代码组:这是具有指定成员资格条件的代码的逻辑分组,例如LocalIntranet_zone和Internet_zone。
- 证据:这是与程序集相关的信息,例如应用程序目录,发布者,URL和安全区域。
- 安全策略:这是一组由管理员配置的规则,用于确定授予在企业,机器,用户和应用程序域的四个级别上分层表示的代码的权限。
执行代码的特权操作要求CLR获得一个或多个权限。 实际权限是使用代码组中设置的权限并集,然后在策略级别使用交集来计算的。 CLR确保所需的权限在该程序集的方法的授予的权限中。 如果未授予许可,将引发安全异常。
CAS提供了两种安全模式来定义代码权限:
- 声明式安全性是通过在程序集级别,类级别或成员级别定义安全属性来实现的。 当在编译时需要评估调用时,使用声明性模式。
- 强制性安全性使用运行时方法调用来创建安全性类的实例。 当需要在运行时评估呼叫时,使用命令式模式。
CAS具有局限性,包括当安全策略不同时,移至另一个系统的应用程序发生故障。 此外,无法控制非托管代码,也无法控制应用程序的开发以满足用户系统上不同安全设置方案的需求。
为了有效地使用CAS的细粒度安全技术,开发人员应编写类型安全的代码,基于上下文使用声明性或命令性语法,从运行时请求运行代码的权限,并使用安全库。