以视频分析为主要载体的人工智能算法在泛安防场景中是怎样落地的?>> 了解详情
写点什么

.NET 4 Beta 2 不再采用代码访问安全(CAS)模型

  • 2010 年 1 月 31 日
  • 本文字数:1380 字

    阅读完需:约 5 分钟

从.NET Framework 1.0 开始,微软就引入代码访问安全(CAS)模型,这是一项用于分配和管理托管代码的工具。.NET Framework 4.0 Beta 2 并不赞成使用CAS,故默认情况下已经关闭该功能,而引入了第二级安全透明度的( Security Transparency Level 2 )安全模型。

考虑到一项强大的功能可以帮助.NET 比 Java 取得更大的进展,在.NET 开发人员中 CAS 就变得不太流行,这是由于它自身的复杂性以及使用不当时会导致潜在的安全漏洞所致。除此以外,本地应用程序或者非托管代码可在完全信任的情况下继续运行,这让 CAS 更无用武之地。

.NET Framework 4.0 中关闭 CAS,表明所有通过 Windows Explorer 或者命令行运行的程序都处于完全可信状态。在 IE 浏览器或 ASP.NET 内部运行的.NET 应用程序也会由它们的主机授于某种级别的信任度。

基于这项改变,当前开发中的代码也许会弹出警告或运行时异常:

这些安全策略改变的结果是:如果我们通过其他类型及成员显式或隐式调用过时的 CAS 安全策略类型和成员,我们也许会遇到编译警告和运行时异常。对于过时的类型和成员以及其替代者,请查看:代码访问安全策略的兼容性与移植
我们可以在运行时设置框架使用 <NetFx40_LegacySecurityPolicy> 配置要素来加入早期的 CAS 策略操作,以绕开警告或错误提示。然而,指定使用旧版安全策略并不包括该版本的任何自定义 CAS 策略,除非它移植到.NET Framework 4 Beta 2。

.NET 4.0 Beta 2 扩展了早期的 Security Transparency 功能,该项功能首次在.NET 2.0 中引入并在微软内部使用。托管代码在一个沙盒中运行就认为是透明的,因为它仅执行主机授权的操作,所以认为它是安全的。第二级透明度安全模型引入以下新元素:

在.NET Framework 4 Beta 2,透明度是一项强制措施,用于把应用程序代码和底层代码分开。透明度区分了可调用本地代码的关键代码和和不可调用本地代码的透明代码。透明代码可在许可范围内执行命令操作,但不能执行、调用、派生自关键代码或包含关键代码。 透明度强制措施的初始目标是要提供简单而高效的机制来隔离不同权限的代码组。在沙盒模型中,这些权限组不是完全信任(即不受约束)就是部分信任(即受制于沙盒的许可进行设定)。

桌面应用程序是完全可信的。因此,它们不受透明度模型的影响。

在.NET 4.0 中有三种代码类型:透明代码、可靠和关键的安全代码和关键安全代码:

  • 透明代码——包括完全可信的运行代码,仅可调用其他的透明代码或可靠和关键的安全代码。它仅执行主域中部分可信的许可集(如果存在的话)允许的操作。

    除此以外,透明方法不可以重写关键虚方法或实现关键接口方法

  • 可靠和关键的代码完全可信,但由透明代码调用。它公开了完全可信代码的部分表层代码。修正和安全确认在可靠和关键的代码中执行

  • 关键安全代码是完全可信的并可调用任何代码,但它不能由透明代码所调用

开发人员仍可使用 CAS,如果他们的应用程序适用于早期的.NET Framework 版本的话,但是他们不能使用在 4.0 Beta 2 或以后版本的最新功能。微软鼓励他们用 Windows 软件限制策略 (SRP) 来代替,它有更简单的安全机制来处理托管代码和本地应用程序。

查看英文原文: Code Access Security Is No Longer Used in .NET 4 Beta 2

2010 年 1 月 31 日 18:291822
用户头像

发布了 87 篇内容, 共 17.8 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

anonymous匿名者场外交易系统APP软件开发

系统开发

人工智能不过尔尔,基于Python3深度学习库Keras/TensorFlow打造属于自己的聊天机器人(ChatRobot)

刘悦的技术博客

人工智能 tensorflow chatbot 聊天机器人 keras

什么是浮点数?

Kaito

计算机基础 浮点数

英特尔力邀150家产业大咖推动Evo严苛认证,打造PC界的奥斯卡

新闻科技资讯

直播中不可缺少的一环-rtmp直播推流

anyRTC开发者

音视频 WebRTC CDN RTC RTMP

深入浅出 ZooKeeper

vivo互联网技术

zookeeper 分布式 ZAB

智能合约交易所系统开发

DV:19924636653

软件开发

为什么说rollup比webpack更适合打包库

fengxianqi

前端 Rollup webpack

生产环境全链路压测建设历程 21:某快递 A 股上市公司的生产压测案例之基于测试流量的混沌工程(故障演练)

数列科技杨德华

全链路压测 七日更

为什么要TDD(测试驱动开发)

sherlockq

敏捷开发 TDD 极限编程

从MongoID的生成讨论分布式唯一ID生成方案

行如风

雪花算法 分布式ID 全局唯一ID 流星算法

抢先体验全新升级版Eternal Wallet!

Geek_c610c0

数字货币 数字货币钱包开发

移动生态盘点与HMS生态解析

华章IT

华为 Android Studio 移动开发 HMS

高空立体云防控系统搭建,智能化平安小区建设方案

t13823115967

平安小区 智慧平安社区建设

英特尔赵宏:从硬件创新到平台突破,PC的未来非常值得期待

新闻科技资讯

SGY奇点交易所系统源码开发

DV:19924636653

软件开发

快速接入 | 从 0 到 1 构建语音聊天室

拍乐云Pano

音视频 RTC 实时语音 语音聊天室 语聊房

智慧仓储管理系统,是否能解决购物狂欢节后新一轮爆仓危机?

一只数据鲸鱼

物联网 数据可视化 智慧物流 智慧仓储

从一个模糊词查询需求的处理方案讨论到一种极速匹配方案的实现

行如风

模糊匹配 双数组trie树 ahocorasick ac自动机 黑名单过滤

如何基于 SDK 快速开发一款IoT App 控制智能灯(iOS 版)

IoT云工坊

ios App 物联网 IoT sdk

盘点 2020 | 10 天开发前台系统技术系列

老魚

CSS 前端 全栈 js 盘点2020

扒开 SqlSession 的外衣

田维常

mybatis

如何通过 Serverless 轻松识别验证码?

Serverless Devs

人工智能 Serverless 云原生

九环智能合约开发

V19927655815

APP开发

一线大厂开源三份JDK+Spring+Mybatis源码笔记

Java架构追梦

Java spring 源码 jdk mybatis

重磅|中国PostgreSQL分会与腾讯云战略合作协议签订

PostgreSQLChina

数据库 postgresql 软件 开源社区

云视频技术领军人赵加雨:如何提升在线教育课堂互动体验

拍乐云Pano

音视频 在线教育 RTC 互动课堂 白板

星域母子币系统软件开发|星域母子币APP开发

系统开发

没能进入大数据领域

escray

面试 面经

应急指挥中心平台搭建,移动可视化指挥解决方案

t13823115967

可视化数据分析搭建 应急指挥

字节二面跪拜“Redis源码”后,面试官直接推荐这份笔记!真是NB

比伯

Java 编程 架构 面试 程序人生

.NET 4 Beta 2不再采用代码访问安全(CAS)模型-InfoQ