摘要载入中…    请稍等…












内容载入中…    请稍等…

如长时间看不到内容,请关闭浏览器,重新打开此页!

芯友首页 应用软件 编程开发 网络硬件 资源下载 动漫音乐 精美图库 芯友论坛 视频教程 电脑技术QQ群:72845454
 ★★photoshop学友-史上最强播放器★★
 位置:编程开发>Asp.net>ASP.net入门教程
◎→ 本类最新
ASP.NET控件
安装ASP.net
ASP.NET简介
web控件-图像显示
ASP.NET的Web控件
输入验证控件(3)
输入验证控件(2)
◎→相关资源
C语言入门视频教程
C#编程WinForm入门视频
Asp.net入门视频教程下载
VC++编程视频教程下载
VB窗体文章
HTML入门教程
Asp.net入门视频教程下载
ASP.net入门教程
Asp.net速成视频教程
◎→ 热门资源
用IIS创建ASP.NET应用程序根目录
部署ASP.NET应用程序
EXCEL和人生
Excel快速制作直方图、柏拉图
导出MSFlexGrid表格的内容到exce
有关Excel中零值的设置
WORD中批量转换中英文标点符号

ASP.NET代码访问安全


日期:2008-10-21 0:10:52    来源:
   
 ·微软指责谷歌Chrome浏览器采用其源代码 ·VB中访问API函数之防错技巧
 ·安全技巧:配置 IIS 4.0 证书鉴定

使用 ASP.NET 主控多个站点的一个主要好处是公共语言运行库对于代码访问安全的支持,这样可以为服务器应用程序提供执行平台系统根据代码的来源证据(例如,具有强名称的程序集或者来源的 URL)将其指派到安全区域分类。如果不能对安装在公用服务器上的单个、不相关的应用程序进行安全配置,那么属于某个应用程序的 ASP.NET 页中的代码就可以读取另一个应用程序中的文件(如 Web.config 文件)了。以完全信任方式运行的应用程序仅受其执行时使用的操作系统帐户的约束。

通过强命名操作和向程序集添加策略,可以轻松处理单个程序集的代码访问安全问题。然而,很多 ASP.NET 程序集都是动态页编译过程动态产生的结果,因而没有强名称,所以需要使用其他的程序。

ASP.NET 允许您将对应于预定义权限集的可配置信任级别指派给应用程序。在默认情况下(除非明确地更改配置),应用程序会收到与其提供的证据相当的信任级别。例如,本地应用程序必须在 MyComputer 区域中使用 Full 信任权限集运行,而通用命名约定 (UNC) 共享上的应用程序则必须在 Intranet 区域中使用 LocalIntranet 受限权限集运行。如果想运行信任级别比 Full 低的 Web 应用程序,您必须使用在 ASP.NET 信任级别和策略文件中预定义的某项信任级别来执行部分信任策略。

可以使用下列配置设置替代默认行为,并使应用程序与给定的安全策略相关联。

<location path="MyApp" allowOverride="false">
    <trust level="High" 
           originUrl="http://www.contoso.com"/>
</location>

<trust> 配置标记可以应用于计算机级别或分层结构中的任何应用程序根目录。

如果要为整个站点设置策略,您可以通过将站点的根指定为路径位置来实现,方法如下。

<location path="ContosoSite" allowOverride="false">
    <trust level="High" 
           originUrl="http://www.contoso.com"/>
</location>

如果不想让程序有能力指定自身的信任级别(在大多数共享服务器安装上的情况),应注意使用 allowOverride 属性来指定 <location> 指令。

下表列出了 <trust> 元素默认支持的属性。

属性 描述 默认支持的值
level 指定应用程序将在其中运行的安全区域。 Full、High、Medium、Low 和 Minimal。
originUrl 允许管理员设置应用程序的原始 URL。

这将允许依赖主机概念的权限正常发挥作用。

标准格式的 HTTP URL。

在默认情况下,与各种安全级别相关的策略享有下表所示的权限。

    级别
权限 Full High Medium Low Minimal
AspNetHostingPermission Full High Medium Low Minimal
环境 读取:TEMP、TMP、OS、USERNAME、COMPUTERNAME        
FileIO 读取、写入、追加和查找路径:应用程序目录 读取、查找路径:应用程序目录    
IsolatedStorage AssemblyIsolationByUser, 未限制的 UserQuota 1 兆配额(可以为单个站点改变),AssemblyIsolationByUser    
反射 ReflectionEmit            
注册表                
安全 执行、断言、ControlPrincipal、ControlThread、RemotingConfiguration 执行、断言、ControlPrincipal、ControlThread、RemotingConfiguration 执行 执行
套接字            
WebPermission 连接到原始主机(如果已配置)。        
DNS        
打印 默认打印 默认打印        
OleDBPermission                
SqlClientPermission AllowBlankPassword=false        
EventLog                
消息
队列
               
服务
控制器
               
性能
计数器
               
目录
服务
               

未 = 未限制的

空白 = 无权限

当某个权限级别可用但并未在安全策略中明确提出时,以 Full 信任级别运行的应用程序将可以使用该级别(因为它们设置了 Full 信任权限集)。以较低的信任级别运行的应用程序不能使用受非显式许可保护的资源,除非您专门更改策略来允许这样做。

如该表所示,High 信任级别的应用程序拥有对应用程序目录中的文件的读取/写入权限,而 Low 信任级别的应用程序仅对应用程序目录中的文件有只读权限。因为 FileIO 权限依赖于物理路径(如 c:\MyAppPath),所以 ASP.NET 在策略文件中使用标记化的语句,该语句在运行时会由相关的路径信息替代。

请注意,WebPermission 允许应用程序连接到原始主机。通过在 <trust> 节上为给定的应用程序提供可选的 OriginUrl 属性,该机制可通过 ASP.NET 起作用。正如下面的 Web_hightrust.config 中的代码所示,OriginUrl 属性可用于替换策略文件中的 $OriginHost$ 变量。

<IPermission class="WebPermission" version="1">
    <ConnectAccess>
        <URI uri="$OriginHost$"/>
    </ConnectAccess>
</IPermission>

SocketPermission 接受主机名或用点分隔的 IP 字符串(也许带有通配符),而 WebPermission 则接受包含协议的正则表达式(如 http://backendmachine/.*)。如果要对此进行更改,您可以更改策略文件以使用所需的权限(或者通过复制默认值创建新的策略文件)。例如,您可以从 ASP.NET 命名权限集中变更 SocketPermission 节,以便允许在 8080 端口上通过 TCP 套接字连接到“backend1”和“backend2”,方法如下。

<IPermission class="SocketPermission" version="1">
    <ConnectAccess>
        <ENDPOINT host="backend1" transport="Tcp" port="8080"/>
        <ENDPOINT host="backend2" transport="Tcp" port="8080"/>
    </ConnectAccess>
</IPermission>

 [1]

透明FLASH背景代码

B对低层硬件访问控制

IIS又发现10个安全漏洞 服务器门户大开

--->QQ伴侣安全卫士 2.0.0┊已增加了老板键和一键锁定等功能┊简体中文绿色免费版
--->QQ空间人气精灵 V3.61┊自动模拟无数真实用户访问QQ空间┊简体中文绿色免费版
--->Halite V0.2.9 Final┊一个优秀的开放源代码的BT 下载客户端┊英文绿色免费版
--->风雷影音 V2.03 Build 3002 RTM┊可拦截恶意广告播放更安全┊简体中文免费版
--->万能极速浏览器 V2007┊基于IE内核的、多功能、安全性高┊简体中文绿色特别版
Tags:  代码 访问 安全

芯友网版权所有 1999-2006 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 联系我们