提高Web应用的安全性

 
关闭本窗口

王正飞
摘自:微电脑世界

---- 随着Internet的迅速发展,政府、企业、个人等都需要在网上发布自己的信息,提供自己的服务。然而,网络上存在许多不安全因素,使人们担心自己的数据被偷窃、拦截或更改。如果事先采取相应的安全保密措施来堵塞隐患,系统的安全性将会大大提高。下面本文将从常用的Microsoft后台数据库SQL Server和Web服务器IIS这2个方面谈谈Web应用的安全措施。

一、SQL Server的安全配置

---- 在网站开发过程中,运用SQL Server的安全特性提供适当的约束控制来保护数据,以便防止来自内部和外部的攻击。一般说来,内部攻击是大多数企业最关心的事情,常把安全性设置为限制谁可以访问数据库服务器以及访问的权限大小。对于SQL Server 7.0,可以从安全模式设置、使用许可和SAA的密码管理等3个方面来考虑。

---- 1. 安全模式设置
---- SQL Server在任何服务器上提供2种安全模式:(1)标准型(只使用Windows NT);(2)集成型(SQL Server和Windows NT结合使用)。在标准安全模式下,SQL Server负责验证用户,并强制用户要通过口令/登录的方式访问数据库,以便限制用户的访问,这是SQL Server中最常用的配置,特别是在没有用Windows NT服务器验证登录和用不同协议来连接服务器时,应当使用标准安全模式。在集成安全模式下,利用了Windows NT的访问控制表(ALC)来管理用户连接。具体设置如下。

选择“开始”*“程序”*“Microsoft SQL Server”*“Enterprise Manager”。

单击要管理的服务器使之加亮,选择“Server”*“Action”*“Properties”,或右击要管理的项目,选择“Properties”。

选择“Security”选项卡,在“Security”对话框中,把设备数据库的安全类型设置为标准型或集成型。

---- 2. 使用许可
---- (1)使用SQL Server Enterprise Manager管理许可。

---- 许可是访问数据库中某个对象(如一个表)的权限,把许可授予该用户,即允许用户执行选择数据、插入新行和更新数据等操作。SQL Server Enterprise Manager为数据库中的用户和组提供一个管理许可的简单办法,具体步骤如下。

---- ①选择“开始”*“程序”*“Microsoft SQL Server”*“Enterprise Manager”。

---- ②单击要管理的服务器使之加亮,选择“Server”*“Action”*“Properties”,或右击要管理的项目,选“Properties”。

---- ③在“Properties”对话框中选中“Permissions”选项卡。使用户或角色高亮显示,并选择要授予该用户或角色的许可。

---- (2)使用Grant和Revoke管理许可。

---- Grant和Revoke语句是SQL Server管理许可的Transact-SQL界面,这2个命令用于把一个或多个许可赋给SQL Server中的一个用户或组。假设已经创建了pubs数据库,pubs数据库中有Employees和Authors这2个表,则下列语句授予了wzf用户对pubs数据库中Employees表的insert和select许可。

---- Grant insert update
---- On employees
---- To wzf
---- Go

---- 下列语句撤消了表Authors的delete许可。
---- Revoke delete
---- On Authors
---- From wzf
---- Go

---- 3. 系统管理员的密码管理
---- 系统管理员(System Administrator,SA)对服务器所有数据中所有的对象都拥有许可,所以SA的权力很大。但在安装SQL Server时,SA缺省口令是空白的,任何本地或域管理员可作为SA用户访问SQL Server,这给SQL Server安全带来了潜在的隐患,因此需要把SA的口令换为更为安全的口令,其设置步骤如下。

启动Enterprise Manager,把服务器的安全模式换为集成安全模式。

终止,再启动SQL Server。

保证作为管理员登录到Windows NT服务器。

再启动Enterprise Manager。

单击“Security”,打开“Logins”目录,选择SA登录。单击右键选择“Properties”,改变口令。

把安全模式换回标准安全模式。

终止,再启动SQL Server。

二、IIS的安全防护

---- 作为Web服务器,IIS(Internet Information Server)的任务之一是负责检验登录用户。可从以下几个方面进行安全措施的设置,以保护Web的安全。

---- 1. IP地址检查
---- IIS能够授权或拒绝特定IP地址对Web站点虚拟目录、目录和文件的访问控制。这样在Web应用中,可以根据站点文件、目录的重要性分别设置对IP地址的限制。具体步骤如下。

---- (1)选择“开始”*“程序”*“Windows NT 4.0 Option Pack”*“IIS”*“Internet Service Manager”,打开IIS管理控制台。

---- (2)选中IIS下计算机名的Default Web Site,单击右键选择“Properties”,然后在选项卡中选中“Directory Security”。

---- (3)选择“IP Address and Domain Name Restrictions”*“Edit”。

---- (4)设置授权(Granted Access)或拒绝(Denied Access)的IP地址后,单击“OK”即可完成。

---- 2. IIS的身份验证
---- 一般来说,IIS 4.0提供5种身份验证来控制用户登录:(1)Anonymous(允许匿名存取);(2)Basic(基本验证);(3)Windows NT Challenge/Response(Windows NT请求/应答);(4)SSL Client Authentication(SSL客户证书验证); (5)Client Certificate Mapping(客户数字证书映射)。

---- 在Internet中,非常少的Web站点为访问者提供用户名和口令,所以在安装IIS时,就自动生成IUSR-Computername账号,专为Internet匿名用户使用。对于Basic的验证方式,系统要求用户与限制内容页连接之前提供用户在Web服务上的用户名和密码。其实,这不是一种很好的验证方法,因为基本验证会以未加密的形式来传送用户账号和密码信息,这时,只要使用Net monitor工具就可能拦截到这些消息。Windows NT Challenge/Response与Basic验证方式基本相同,但最明显的区别在于Web服务器与浏览器采用密码交换信息。SSL Client Authentication是指带客户SSL证书的用户可以访问要求SSL验证的Web服务器信息。

---- 所以,利用IS的身份验证,将某些重要和敏感的数据资源的访问权限限定为特定的Web合法用户,禁止匿名访问,以此来保护Web应用中的重要资源。身份验证的设置步骤如下。

---- (1)选择“开始”*“程序”*“Windows NT 4.0 Option Pack”*“IIS”*“Internet Service Manager”,打开IIS管理控制台。

---- (2)选中IIS下计算机名的Default Web Site,单击右键选择“Properties”,然后在选项卡中选中“Directory Security”。

---- (3)单击“Password Authentication Method”的“Edit”进行设置,完成后单击“OK”即可。

---- 3. 安全通信
---- 在安全通信(Secure Communications)组中,单击“Edit”按钮,打开“Secure Communications”对话框,可以查阅和改变Web服务器提供的SSL特性。一旦建立安全连接,Web站点访问者就要用支持这类安全通信的浏览器,客户机与服务器之间传递的所有信息都加密,可以用这种安全连接传递保密信息。当然,在使用Web服务器的SSL特性前,要先安装数字证书。这个对话框有以下3种属性可以设置。

---- (1)Require Secure Channel 该复选框指定用加密通道连接客户机浏览器和Web服务器。

---- (2)Require 128-bit Encryption 该复选框要求用128位加密连接客户机浏览器和Web服务器。

---- (3)Key Manager 单击该按钮可以用密钥管理器收集所有相关信息,并从信任的第三方机构(称为证书机构)请求数字证书。受到证书后,用密钥管理器安装证书,并将它连接到验证密钥对中。

---- 4. IIS自身问题的解决
---- 很多人都知道,IIS 4.0存在一个错误,如果在浏览器的地址栏处请求地址后面加上: $DATA,则可以浏览所请求的ASP文件的源代码,为了保护ASP源代码不被浏览器看见,可以采取如下措施避免错误发生。

---- (1)SP文件应该和HTML文件保存在不同的目录下。

---- (2)存放ASP文件的虚拟目录要设置为“Execute”(执行),但不可为“Read”(读取)。

---- (3)HTML文件的虚拟目录要设置为可“Read”,否则这些Web页将无法显示。

---- Web应用的安全性问题非常复杂,范围很广,在本文中,我们只是从内部安全角度出发,对后台数据库SQL Server 7.0和Web服务器IIS 4.0进行一些合理的和有效的安全设置,来防止非法用户对Web应用程序的越权访问,提高Web站点的安全性。

推荐本文给好友 我要投稿>> 进入信息化BBS论坛



关闭本窗口
 
世纪科创电脑系统有限公司版权所有