securityPolicy与安全策略等级配置
securityPolicy配置节是定义一个安全策略文件与其信任级别名称之间的映射的集合。配置如下所示
其中name是指定映射到策略文件的命名的安全级别,一般的值有Full,Hight,Medium,Low,Minimal,UserDefined;policyFile指的是当前安全级别中对应的配置文件,该文件会存放在Windows\Microsoft.NET\Framework64\{.Net Framework Version}\Config或Windows\Microsoft.NET\Framework\{.Net Framework Version}\Config中。其默认配置如下
打开其中一个配置文件
SecurityClasses中添加了一些下面各种配置用到的安全类,包括以CodeAccessPermission为基类的代码访问权限,其包含在各个权限集PerssionSet里面;以Condition为后缀的类,用于判定被测试的程序集是否属于代码组,以CodeGroup为基类的代码组类,实际上这些类我也没了解太多。PermissionSet节点是权限配置的集合,其Name属性为ASP.NET的指的是。里面的子节点IPermission则是对CodeAccessPermission的子类的配置。IPermission的class属性的值需要和SecurityClass节点的name属性对应。针对不同的Permission权限类可以指定不同的配置。
在MSDN官网上面的文章中介绍了几个权限类,这里也顺带翻译一下
OleDbPermission
通过OleDbPermission权限类能使你的网页应用程序支持多种数据库类型,添加无限制的OleDbPermission 权限到你的策略文件中意味着你的应用程序可以在服务器上使用OLE DB Provider,例如达到对catelog.mdb数据库的访问方式进行限制。
在上面add节点中,ConnectionString属性是指定一条可用的连接字符串,KeyRestrictions属性用于指定在连接字符串中可用或者不可用的参数。其可用还是不可用的设置在KeyRestrictionBehavior属性中设置,它有两个值AllowOnly和PreventUsage。
如果毋需任何限制则改成下面的配置,关键是Unrestricted属性的设置。
EventLogPermission
通过EvntLogPermission权限类可以控制当前应用程序能否许可进入Windows的事件日志。其IPermission设置如下所示
access属性设置了administer才能使被信任的应用程序写入事件日志。
建立事件源:假设你的应用程序需要使用应用程序指定事件源,则必须在安装的时候启用管理员特权。最好是使用那些支持Windows Installer或者支持 InstallUtil.exe系统组件的.NET的安装类型。假如你在安装或者部署的时候不能建立事件源,计算机管理员进入下面的注册表中建立一个新的事件源。
但你不能通过提升ASP.NET进程账户的权限来通过写入权限,否则攻击者可以更改一些日志相关的设置。
FileIOPermission
如果你需要允许你的应用程序进入应用程序虚目录以外的地方,则需要使用这个FileIOPermission权限类。例如下面定义一个应用程序可以读取"C:\SomeDir"目录下的文件。
在让应用程序访问应用程序虚目录以外的文件时,你需要降低代码访问的安全性来保障应用程序隔离能力。假如在一个服务器中有多个应用程序,你需要给不同的应用程序配备不同的标识来保护一些比如是ACLs文件的资源。
以上内容均是配置策略而已,当我在MSDN上看FileIOPermission类介绍的时候发现以下的一段代码,
这段代码就是使用代码访问权限的例子了,加入不具备FileIOPermission的进程读取C盘下的test_r就会抛出异常,在博客园另外一位园友的博客中也看到相关的示例代码。
用这些权限类的作用就是使得它后面的代码执行是经过具备权限的,不具备权限则不能执行下去。这些权限判定的代码可以在用户自己编写,也有可能出现在.NET Framework的类库里面。这里的权限就比Windows标识中具备的权限粒度更细,可以让同一windows标识下不同的应用程序具备有差别的权限。
那下面则介绍如何给ASP.NET应用程序分配信任等级,通过在web.config中的turst配置节进行设置。
一般常用的属性有level,这也是必填的,用于指定当前的信任等级,这个信任等级就对应securityPolicy配置节中的配置。orginUrl属性作用是指定 URL 以用于在中等信任中配置的限制 WebPermission 权限。如果存在,则此属性可用于只允许连接到 WebPermission 所指定的特定 URL 的某些类(如 HttpWebRequest)。看起了挺拗口且不好理解。在我理解是这个属性当信任级别设置成中等的时候才生效,如果给这个属性设置了一个url,这个URL会添加到WebPermission的类的可连接列表ConnectList中。凡是该列表中的URL在发出网络请求时都可以通过。
当然这个turst节点可以出现在不同路径下而达到对不同路径下的代码具备不一样的访问权限。如下所示
参考文章
ASP.NET 信任级别和策略文件
来自 <https://msdn.microsoft.com/zh-cn/library/wyts434y(v=vs.110).aspx>
FRAMEWORK安全性之代码访问安全和角色安全
来自 <http://www.cnblogs.com/luminji/archive/2010/10/29/1864248.html>
How To: Use Code Access Security in ASP.NET 2.0
来自 <https://msdn.microsoft.com/en-us/library/ms998326.aspx>
trust 元素(ASP.NET 设置架构)
来自 <https://msdn.microsoft.com/zh-cn/library/tkscy493(v=vs.110).aspx>
管理安全策略
来自 <https://msdn.microsoft.com/zh-cn/library/wztcyd2e(v=vs.100).aspx>
securityPolicy与安全策略等级配置的更多相关文章
- TLS安全策略等级
TLS安全策略包含HTTPS可选的TLS协议版本和配套的加密算法套件.TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差. ssl_cip ...
- 华为HCNP实验 防火墙安全区域及安全策略配置(USG6000)
防火墙安全区域及安全策略配置 一.学习目的 掌握防火墙安全区域的配置方法 掌握安全策略的配置方法 二.拓扑图 三.场景 你是公司的网络管理员.公司总部的网络分成了三个区域,包括 ...
- vip会员统计表 (vip等级是灵活配置的 非写死1是金卡用户 2是什么 等)
一个非常常见的报表,分析会员组成比例 以及最新增长情况 和上月同期会员增长情况. 比较特殊一点的是 报表中的 普通会员 和 金卡会员 临时会员 银卡会员 等列 都是根据会员等级配置表动态生成的(即 ...
- ensp练习:防火墙安全策略配置
一.实验目的:1. 了解华为防火墙安全策略.2. 掌握华为防火墙安全策略的配置.二.实验仪器:计算机.华为ensp模拟器.华为防火墙三.实验内容:在这里插入图片描述根据网络拓扑图如上(交换机不需要配置 ...
- Windows防火墙配置(允许某个网段和部分IP访问某个端口)
1.win+R 2.gpedit.msc 3.计算机配置+Windows设置+安全设置+IP安全策略,在本地计算机 4.创建IP安全策略 5.配置IP筛选器列表.筛选器操作 6.分配 192.168. ...
- Windows系统通用安全配置基线
一:共享账号检查 配置名称:账号分配检查,避免共享账号存在 配置要求: 1.系统需按照实际用户分配账号: 2.根据系统的使用需求,设定不同的账户和账户组,包括管理员用户,数据库用户,审计用户,来宾用户 ...
- log4j.properties配置内容的理解
一直知道log4j是用来记录日志的,但一直没去看log4j到底是怎么用的,这两天看了几个log4j.properties配置语句详解的帖子,在这里简陋地记录一下. 在完全不知道log4j怎么用的时候, ...
- office web apps安装部署,配置https,负载均衡(四)安装office web apps相关软件
前提条件: 1.一台windows server 2008R2服务器,并且已经配置了域: 服务器连接域控制器的相关文档,请查看上一篇文章: office web apps安装部署,配置https,负载 ...
- mysql 远程连接不上,bind-address参数配置要求,以及怎么去使得mysql能够允许远程的客户端访问
刚安装了MySQL服务器,使用远程管理工具总是连接不上,因为知道mysql的默认端口是3306,于是使用telnet连接这个端口,(从这里可以学到telnet是可以这样用的) telnet 192.1 ...
随机推荐
- Entity Framework 基础知识走马观花
本文目录: 一.EF中的edmx文件探秘 二.EF中的代理模式探秘 三.EF中的延迟加载与即时加载 一.EF中的edmx文件 1.1 emdx文件本质:一个XML文件 (1)通过选择以XML方式打开e ...
- 修改Hosts为何不生效,是DNS缓存?
Update: 如果浏览器使用了代理工具,修改 Hosts 也不会生效.这里是因为,浏览器会优先考虑代理工具(如添加 pac 文件.SwitchySharp等)的代理,建议调试的时候先关闭这些代理. ...
- 谈谈对Spring IOC的理解
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...
- MySQL 子分区
200 ? "200px" : this.width)!important;} --> 介绍 子分区其实是对每个分区表的每个分区进行再次分隔,目前只有RANGE和LIST分区 ...
- Redis 主从配置和参数详解
安装redis 下载redis wget http://download.redis.io/releases/redis-3.0.7.tar.gz 解压redis tar -xvf redis-.ta ...
- 使用sklearn做单机特征工程
目录 1 特征工程是什么?2 数据预处理 2.1 无量纲化 2.1.1 标准化 2.1.2 区间缩放法 2.1.3 标准化与归一化的区别 2.2 对定量特征二值化 2.3 对定性特征哑编码 2.4 缺 ...
- Swift语言快速入门
Swift语言快速入门(首部同步新版官方API文档和语法的Swift图书,确保代码可编译,作者专家在线答疑,图书勘误实时跟进) 极客学院 编著 ISBN 978-7-121-24328-8 201 ...
- 用SQL语句创建四个表并完成相关题目-10月18日更新
1. 查询Student表中的所有记录的Sname.Ssex和Class列. 2. 查询教师所有的单位即不重复的Depart列. 3. 查询Student表的所有记录. 4. 查询Score表中成绩在 ...
- Data Profiling Task
Data Profiling Task 是用于收集数据的Metadata的Task,在使用ETL处理数据之前,应该首先检查数据质量,对数据进行分析,这将对Table Schema的设计结构和生成ETL ...
- MVC5 网站开发实践 2.1、管理员登陆
目录 MVC5 网站开发实践 概述 MVC5 网站开发实践 1.建立项目 MVC5 网站开发实践 2.后台管理 1. 创建SHA256加密方法. 在Data项目中添加文件夹[Security ...