科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件NET 框架中的安全性概述权限

NET 框架中的安全性概述权限

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

NET 框架中的安全性概述权限

作者:Demien Watkins 2007年10月26日

关键字: net

  • 评论
  • 分享微博
  • 分享邮件

权限代表可执行受保护操作的授权。这些操作通常包括对特定资源的访问。通常,这些操作包括访问资源(如文件)、注册表、网络、用户界面或执行环境等。不涉及实际资源的权限的一个示例是跳过验证功能。

System.Security.Permissions.SecurityPermission 类包含一个标志,该标志决定是否允许权限实例的接收者跳过验证。SecurityPermission 类包含了其他类似的权限标志,它们涵盖了核心的运行库技术,如果未正确使用这些技术(如控制为在特定应用程序域中运行的程序集提供的证据的能力),就可能公开安全漏洞。核心运行库技术是由请求调用方来保护的,以使得必需的 SecurityPermission 类设置合适的权限标志。

权限的基本抽象是 IPermission 接口,它要求特定的权限类型实现一组标准的权限操作,如返回与具有相同权限类型的其他权限实例的联合或子集。

可以将权限整理到一个权限集中,该权限集代表对各种资源的访问权限的一种声明。System.Security.PermissionSet 类代表权限的集合。这个类的方法包括 IntersectUnion。这些方法采用另一个 PermissionSet 作为参数,并提供了一个 PermissionSet,该 PermissionSet 要么是这两个集合中所有权限的联合,要么是这两个集合中所有权限的交集。(运行库中的权限集合是以一个简单的、未排序的集合表示的。)有了这些工具,安全系统就可以使用权限集,而不必理解每种权限类型的语义了。这使得开发人员可以扩展权限的层次结构,而无需修改安全引挚的功能。

每种权限类型都必须派生自 IPermission 接口,该接口要求任何权限类型实现标准的权限操作,如联合、交集、子集和请求方法。这些权限类型不用实现特定于它们所包含的权限状态类型的语义。例如,与一个包含文件名的权限相交所产生的结果,就不同于与一个包含简单布尔值状态的权限相交所产生的结果。当权限集 A 与权限集 B 相交时,如果 A 和 B 包含相同权限类型 X 的不同实例,那么权限集类 A 就会调用 X 实例上的交集方法,而不必知道有关 X 语义的任何内容。

根据在程序集加载时提供给安全系统的证据,安全系统将授予一个权限集,该权限集代表访问各种受保护资源的权限。相反,资源是由权限请求来保护的,该请求会触发一个安全检查,以查看是否将一个特定的权限授予了该资源的所有调用方;如果请求失败,就会引发一个异常。(有一个称为链接请求的特定安全检查,它只检查直接调用方,但通常会检查调用方的整个调用堆栈。)

查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章