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 ...
随机推荐
- [译] 给PHP开发者的PHP源码-第一部分-源码结构
文章来自:http://www.hoohack.me/2016/02/04/phps-source-code-for-php-developers-ch 原文:http://blog.ircmaxel ...
- .net中事件引起的内存泄漏分析
系列主题:基于消息的软件架构模型演变 在Winform和Asp.net时代,事件被大量的应用在UI和后台交互的代码中.看下面的代码: private void BindEvent() { var bt ...
- Angular 2 最终版正式发布
9月15日,Angular 2 的最终版正式发布了. 作为 Angular 1 的全平台继任者 -- Angular 2 的最终版,意味着什么? 意味着稳定性已经得到了大范围用例的验证: 意味着已经针 ...
- 如何创建一个RESTful WCF Service
原创地址:http://www.cnblogs.com/jfzhu/p/4044813.html 转载请注明出处 (一)web.config文件 要创建REST WCF Service,endpoin ...
- 非正规方法处理AngulurJS模块管理问题
1.起因 自己一直做winform,有幸从某个大神手里接了一个node.js,express,angulurJS等集众多开源框架的一个项目,赶鸭子上架,于是一边学习,一边用自己以往的思中去整理,重构代 ...
- Hystrix框架5--请求缓存和collapser
简介 在Hystrix中有个Request的概念,有一些操作需要在request中进行 缓存 在Hystrix调用服务时,如果只是查询接口,可以使用缓存进行优化,从而跳过真实访问请求. 应用 需要启用 ...
- Java static 的一两点使用
这篇文章是关于Java static关键字的使用,主要会介绍以下的内容: static 的概念 static的各种应用 总结 static 是什么 static 顾名思义是静态的意思.与this相对, ...
- C# Azure 存储-队列
1.前言 本篇文章是根据Azure的官网document总结,如果想直接跳过本文章,可以点击下面的链接进入. https://www.azure.cn/zh-cn/documentation/arti ...
- 每天一个linux命令(23):Linux 目录结构
对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...
- Python3 的json 和 PHP的json
Python3操作json的标准api库参考:https://docs.python.org/3/library/json.html#module-json >>> aa = ['/ ...