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 ...
随机推荐
- 公司内部培训AlwaysOn PPT分享
公司内部培训AlwaysOn PPT分享 下载地址: http://files.cnblogs.com/files/lyhabc/alwayson.ppt
- 使用NServiceBus开发分布式应用
系列主题:基于消息的软件架构模型演变 NServiceBus 是一个.Net平台下开源的消息服务框架,这类产品有时也被称作ESB(Enterprise Service Bus)--企业服务总线.NSe ...
- 玩转动态编译 - 高级篇:一,IL访问静态属性和字段
IL介绍 通用中间语言(Common Intermediate Language,简称CIL,发音为"sill"或"kill")是一种属于通用语言架构和.NET ...
- TODO:浅谈pm2基本工作原理
TODO:浅谈pm2基本工作原理 要谈Node.js pm2的工作原理,需要先来了解撒旦(Satan)和上帝(God)的关系. 撒旦(Satan),主要指<圣经>中的堕天使(也称堕天使撒旦 ...
- 导入一些常用命令比如(rz),关闭防火墙外面可以访问
yum -y install lrzsz-----------导入常用命令 我在虚拟机上面启动了一个项目 这个原因是防火墙造成的,关闭防火墙 iptables -L 查看下 service ipt ...
- 前端MVC框架Backbone 1.1.0源码分析(二) - 模型
模型是什么? Models are the heart of any JavaScript application, containing the interactive data as well a ...
- 深入理解javascript函数系列第四篇——ES6函数扩展
× 目录 [1]参数默认值 [2]rest参数 [3]扩展运算符[4]箭头函数 前面的话 ES6标准关于函数扩展部分,主要涉及以下四个方面:参数默认值.rest参数.扩展运算符和箭头函数 参数默认值 ...
- Android的PopWindow动画实现
转载博客:http://www.open-open.com/lib/view/open1423626956186.html 1.实现步骤 1.主布局activity_main.xml <Rela ...
- Javaweb中解决跨越问题的拦截器代码
public class AccessControlFilter implements Filter { @Override public void init(FilterConfig filterC ...
- Util应用程序框架公共操作类(五):异常公共操作类
任何系统都需要处理错误,本文介绍的异常公共操作类,用于对业务上的错误进行简单支持. 对于刚刚接触.Net的新手,碰到错误的时候,一般喜欢通过返回bool值的方式指示是否执行成功. public boo ...