ASP.NET 安全策略学习与 .NET 测试环境搭建

 

ASP.NET 安全策略学习与 .NET 测试环境搭建

Home > 今日一点, 服务器 > ASP.NET 安全策略学习与 .NET 测试环境搭建
Posted on September 19, 2009 by 白菜林

ASP.NET 测试环境:

Windows2003 + IIS6.0
ASP.NET v1.1 ( .NET Framework 1.1 ) / ASP.NET v2.0 ( .NET Framework 2.0 )
MDAC 2.8( Microsoft Data Access Components (MDAC) 2.8 )
MS2005 SP3 ( Microsoft SQL Server 2005 Express Edition Service Pack 3 )

Microsoft SQL Server Management Studio Express Service Pack 3

ASP.NET 测试环境搭建目的:
多人使用通过FTP上传编写的代码进行调试,避免服务器遭受WEBSHELL提权攻击。

ASP.NET 环境搭建:

iis6和 .net 的安装这里就不说了。。
MS2005 SP3装完后,给出的“应用最小化”建议配置:

配置和管理 SQL Server Express
· 为提高可管理性和安全性,SQL Server 2005 对系统上的 SQL Server 外围应用进行了更严格的控制。若要使外围应用最小化,请将以下默认配置应用于 SQL Server 实例:

o 禁用 TCP/IP 连接
o 禁用 Named Pipes
o 必须手动启动 SQL Browser
o 禁用 OPENROWSET 和 OPENDATASOURCE
o 禁用 CLR 集成
o 禁用 OLE 自动化
o 禁用 xp_cmdshell

若要启用或禁用功能和服务,请运行“开始”菜单中的“SQL Server 外围应用配置器”工具。

简单修改SQL Server 2005 默认配置

为了可以正常的测试ASP.NET链接MSSQL数据的程序,需要使用“SQL Server 外围应用配置器”,打开“Database Engine”的“TCP/IP 连接”(只开这个就可以啦,方便防火墙设置)。然后使用“SQL Server 配置管理器”配置“SQL Server 2005 网络配置”——“TCP/IP”——“IP地址”——”IPALL”——TCP端口设置为1433(可根据自己需要修改这个数字),重启“SQL Server 2005”,然后使用“Telnet 127.0.0.1 1433”,看是否能够连到数据库服务。

然后使用“SQL Server Management Studio Express”——建立数据库,新建用户,映射数据库,赋予Public和Db_ower权限即可。

SQL Server 2005默认装起后可能出现的问题:

在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 – 无法打开到 SQL Server 的连接)

服务器安全策略需要整体全面的考虑,这里仅仅描述下ASP.NET应用与IIS结合的安全策略。

ASP.net与IIS的关系类似与于PHP与Apache的关系,这里说明下ASP.net与IIS之间安全关系:

1> IIS接收到HTTP请求。可以使用SSL技术来保证服务器的身份,此外SSL也提供一个安全通道,以保护在客户端和服务器间传送的机密数据。
2> IIS使用基本、摘要式或其他验证的方式验证用户。如果网站中全部或部分内容无须经过验证,则可将IIS设定为匿名验证。
3> 经过验证之后,IIS会将用户的Windows存取令牌传送到ASP.NET,如果IIS使用的是匿名验证,则为匿名Internet使用者的存取令牌(默认值为IUSER_MACHINE帐号)。
4> ASP.NET验证请求者。有三种方式的验证:Windows验证,窗体验证,护照验证。
5> ASP.NET会授权存取所需要的资源。有两类授权:
a) URL授权。通过URL授权模块使用在Web.config中设定的授权规则(也就是元素中的设置),检查用户是否具有访问权。例如:



上面的例子表示名为Admin的用户有访问权,而其他所有用户的访问都是被拒绝的。
b) 文件授权。文件授权是根据文件的存取控制清单(ACL)来确定已经过验证的用户帐户能否访问文件。例如:应用程序允许使用IUSER_MACHINE帐户进行匿名访问,当这个访问到index.aspx时,ASP.NET会根据ACL来检查该文件以确定 IUSER_MACHINE帐户是否具有读取该文件的权限。如果有,则授权访问;没有就不能访问。
6> 应用程序会使用特别身份,存取本机或远程资源。

当我们了解了ASP.NET与IIS之间的关系之后,我们就可以对身份验证及资源授权进行各种综合的考虑,以加强网站或系统的安全性了。

引用自:ASP.NET安全策略研究手记

ASP.NET安全策略实施

1> 本地用户和组中设置ASPNET用户为Guest组并且去掉Users组权限。

这是因为IIS网站和ASP.NET使用独立的用户权限,User组权限可能引出服务器提权危险。

2> 危险的默认asp.net策略配置

.net的web application都继承“C:\Windows\Microsoft.NET\Framework\{version}\CONFIG\web.config” 配置文件,其中有

微软对“Full”级别权限的描述:

完全
无限制的权限。应用程序可访问任何属于操作系统安全范围的资源。支持所有的特权操作。

关于 ASP.NET 代码访问安全性 可以查看这里的详细说明。

可以在保证正常运行服务程序的情况下应当禁止重写安全策略,建议“信任级别”设置为“高”或更低,配合NTFS目录文件权限保证策略文件不会被可能的WEBSHELL修改!

附注:

你可能感兴趣的:(C#)