【摘要】文章从Asp系统的全局出发,从Web服务器端、数据库端、Asp程序设计三个方面对Asp的安全技术进行分析和总结,并指出Asp的安全应以预防为主。
【关键词】ASP;安全;Web服务器;数据库
Asp是微软推出的服务器端脚本环境,它把脚本、HTML、ActiveX组件有机地结合在一起,形成动态、交互、高效的Web服务器应用程序。目前,IIS+ASP+SQL(或Access)方案已成为中小型企业构建自己网上信息系统的首选方案。虽然Asp具有快速开发能力,但Asp也存在不容忽视的安全漏洞,这些安全问题是Asp程序开发者和管理者一直努力解决的问题。本文试图从服务器端、数据库端、Asp程序设计三个方面对Asp的安全技术进行分析。
一、2 ASP的安全技术分析
(一) Web服务器端的安全技术
1.目录文件的保护
(1) NTFS权限。NTFS文件系统提供了比Fat32更为安全的文件管理方式,它通过文件访问控制表(ACL)定义了用户访问文件和目录的权限级别,如果用户具有打开文件的权限,计算机则允许该用户访问文件。通过设定目录和文件的访问权限,禁止无关用户对目录文件进行复制、修改、删除等操作,限制对系统的入侵。
(2) 虚拟目录及其属性设置。虚拟目录隐藏了有关站点目录结构的重要信息,在Asp环境下,较安全的做法是将Asp脚本和HTML文件分开存放在不同的目录下,将存放HTML文件的目录设为只读属性,将存放Asp脚本的目录设为执行属性。
(3)防止查看Asp文件。IIS自带的Code.asp或Showcode.asp文件,可以查看Asp程序的源代码,从而窃取相关的信息。可以在Web服务器端删除该文件或者禁止访问存放该文件的目录。
2.限制访问技术
(1)IP地址限制。IIS能够授权或拒绝特定IP地址对其访问,通过拒绝某特定IP地址的访问,以排除入侵干扰。具体设置:A启动ISM(Internet服务管理器);B启动Web属性页中“高级”选项卡;C进行指定IP地址的控制设置。
(2)用户访问控制。IIS提供了对站点资源进行匿名访问与验证控制设置,Web服务器根据设置对用户的身份进行验证,阻止未授权用户与受限制内容建立Http连接。具体设置:在Web站点的“目录安全性”属性页中选择“匿名访问和验证控制”进行编辑。匿名访问允许客户端以IUSR-Computername为帐号与Web服务器建立连接(密码随机提供)。对于非匿名访问,有三种验证方式:基本验证,允许用户名及密码以未加密(明文)方式发送;简要验证,仅在域控制器的域中被支持,它通过网络发送经过混编的值(即利用“散列算法”计算的消息摘要)而不是密码进行验证。集成Windows验证,使用安全套接字层(SSL)自动加密用户名和密码。
(3)防火墙技术。防火墙的目的是为内部网络或主机提供安全保护,阻止对信息资源的非法访问,强制所有连接都必须经过此保护层。防火墙包括包过滤和代理两种,包过滤主要是针对特定IP地址的主机所提供的服务,其基本原理是在网络传输的IP层截获往来和IP包信息,确定是否对此IP包进行转发。代理的基本原理是对Web服务单独构造一个代理程序,不允许客户程序与服务器程序直接交互,必须通过代理程序双方才能进行信息的交互。在实际构建时,通常由过滤器提供 论文检测天使-免费论文检测软件http://www.jiancetianshi.com
第一级的安全防护,再由代理服务器提供更高级的安全防护机制。
3.审核与监视技术。安全审核负责监视系统中各种与安全有关的事件,生成安全日志,并提供查看安全日志的方法。通过分析安全日志,可以发现并阻止各种危及系统安全的行为。Windows2K默认安装下,安全审核是关闭的。要进行审核,必须先确定审核策略,指定要审核的安全事件的类别。具体的设置:在“管理工具-本地安全策略-本地策略-审核策略”中打开必要的审核。除了安全日志,系统日志和应用程序日志也是很好的监视工具,它们记录了用户自登录开始直到退出的整个操作过程,为网络安全分析提供可靠的依据。
4.SSL安全机制。SSL (Secure Socket Layer)是一个运行在Http层和TCP层间的安全协议,确保传递信息的安全性。SSL是工作在公共密钥和私有密钥基础上的,任何用户都可以获取公共密钥来加密数据,但解密数据必须要通过相应的私有密钥。目前,SSL已被视为Internet上Web浏览器和服务器的标准安全性措施。由于SSL技术已建立到所有主要的浏览器和Web服务器程序中,因此,仅需安装数字证书或服务器证书就可以激活服务器功能。建立SSL安全机制后,只有SSL允许的客户才能与SSL允许的Web站点进行通信,浏览器连接到使用Https://的地址,而不是URL中的协议。
5.关闭不用的服务和协议,堵上系统的漏洞和后门。“尽量少开没用到的服务”,如果开启了某个服务,就要提防该服务可能引起的漏洞。同时要定期下载操作系统、IIS、ASP和DBMS最新漏洞的补丁,将可能发生的安全隐患减到最少。
论文检测天使-互联网抄袭检测软件http://www.jiancetianshi.com
(二)ASP程序设计安全技术
Asp程序设计的安全主要涉及两个方面:一是Asp源代码的安全,二是Asp程序设计中的安全。常见的安全技术如下:
1.用户名、口令机制。用户名、口令是基本的安全技术,在Asp中常采用Form表单提交用户输入的帐号和密码,与用户标识数据库中相应的字段进行匹配。
2.Cookie的安全性。为防止非法用户访问合法用户的会话变量,服务器为每个SessionID指派一个随机生成号码。每当用户的Web浏览器返回一个SessionID Cookie时,服务器取出SessionID被赋予的数字,检查与存储在服务器上的生成号码是否一致,如果不一致则不允许用户访问会话变量。同时,应加密重要的Sessionid Cookie。一旦黑客截获了用户的Sessionid Cookie,就能假冒该用户开始一个活动会话。
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr /> 3.注册验证。为防止未注册用户绕过注册界面直接进入应用系统,常利用Session对象和Http头信息来实现安全控制。当访问者通过身份验证页面后,就把Session对象的Sessionid属性作为一个Session变量存储起来,当访问者试图导航到一种有效链接的页面时,可将当前的Sessionid与存储在Session对象中的ID进行比较,如果不匹配,则拒绝访问。如在Session(“id”)中保存着 论文检测天使-免费论文检测软件http://www.jiancetianshi.com
第一次链接的Sessionid,<%if session.sessionid<>session(“id”) then response.end%>’拒绝访问。
4.页面缓存管理。如果浏览器设置了“浏览网页时首先查看本地缓冲区里的页面”,就给非法用户提供了越权浏览的机会。因此,重要的Web页面(如身份验证页面)必须禁止页面缓存,强制浏览器每次向Web服务器请求新页面。利用Asp的Response对象的Expires属性和Clear方法可解决此问题。具体设置:Response.expires=0 Rsponse.clear,expires表示缓存页面的有效期, 0表示立即过期,clear表示清空缓冲区。
5.Asp脚本加密技术。对Asp页面加密是防止Asp源代码泄露的重要方法,常用方法有两种:一是ASP2DLL技术。其基本思想是利用VB6.0提供的Activexdll对象将Asp代码进行封装,编译为DLL文件,在Asp程序中调用该DLL文件。二是利用微软提供的Script Encoder加密软件对Asp页面进行加密。
6.屏蔽数据库路径信息。为防止数据库路径和名称随ASP源代码失密而失密,常采用以下技术:A、使用ODBC数据源。使用ODBC数据源连接数据库的命令是Conn.open “DSN名”。B、使用数据链接文件来连接数据库。具体方法是新建一个数据链接文件(假定为abc.udl),打开该文件进行相应的设置,测试连接后,在程序中用语句实现连接:conn.open”file name=路径名:/abc.udl”。C、插入INC文件。将文本连接信息保存在以INC为扩展名的文件中,然后在Asp页顶端插入一个包含语句:<!--#include virtual=”*(文件名).inc”-->。
7.置合适的脚本映射。应用程序的脚本映射保证了Web服务器不会意外地下载Asp文件的源代码,但不安全或有错误的脚本映射易导致Asp源代码泄漏。因此,应将用不到的有一定危险性的脚本映射删掉(如*.htr文件及*.htw,*.ida,*.idq等索引文件)。
(三)数据库端的安全技术
在Asp环境中,常用的后台数据库是Access和SQL Server,下面分别对它们在ASP环境下常用的安全技术进行分析。
1.Access数据库的安全
(1)非常规命名法。为防止数据库被找到,可为Access数据库文件起一个复杂非常规的名字,并存放在多层目录下。这样,可以有效阻止通过猜的方式得到数据库文件名。
(2)为数据库文件编码及加密。为防止他人使用其他工具查看数据库文件,可以对数据库文件进行编码,具体做法是选择“工具→安全→编码/解码数据库”。为数据库设置密码的具体做法:以“独占”的方式打开数据库,在功能表中选择“工具→安全→设置数据库密码”。但是,Access的加密机制比较简单,根据其“与某一固定密钥异或形成加密钥”的加密思想,很容易编制解密程序。因此还必须借助于其他安全措施(如身份认证和权限控制)来保证数据库的安全。
2.SQL Server数据库的安全
(1)更改sa口令,取消guest帐号。SA具有对SQL Server数据库操作的全部权限,但在安装SQL Server时sa缺省口令为空,为SQL Server带来了潜在的隐患,应把sa的口令换为更安全的口令,同时不能把sa帐号的密码写在应用程序或者脚本中。
(2)控制访问权限。定义用户和角色对数据库、数据表和数据列的访问权限,限制用户对表拥有直接的查询、更改、插入、删除权限,可以通过给用户访问视图和执行存储过程的权限,以保证数据库的安全。
(3)限制SQL Server自带的存储过程。在SQL Server攻击中有一类是构造特殊字符串调用SQL Server系统中master数据库自带的存储过程来获取权限。如下面的字符串使用xp_cmdshell存储过程调用系统的net命令将test帐号加入管理员组。Username=’;exec master.dbo.xp_cmdshell ‘net localgroup administrators test /add’:--。因此可以去除或限制SQL Server系统中自带的存储过程。
(4)加强数据库访问日志的监视,定期备份数据库。审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统日志里就详细记录了所有帐号的登录事件,一旦出现问题能够查出原因,及时补救。同时,制订完整的数据库备份策略,在必要的时候能够实现对数据库的恢复。
三、结语
Asp环境下的安全问题应从系统的全局进行分析和考虑,既要保证系统安全,又要取得良好的系统性能。本文从服务器端、数据库端、Asp程序设计三个方面对Asp安全技术进行分析和总结,但随着新的攻击手段和方法不断涌现,要构建一个面面俱到的安全体系是很困难的,因为一种技术只能解决一或几个方面的问题。因此,Asp的安全应侧重于预防,规范自己的编程习惯,及时地堵上系统漏洞,定期进行风险评估,安装入侵检测系统等预防措施能及时有效地进行入侵防范。
参考文献
[1]陈婧,等.基于ASP技术的MIS安全机制研究[J].情报杂志,2003,(8).
[2]华军,等.基于ASP技术网站建设的安全性研究[J].计算机工程和应用,2003,(33).
[3]张念鲁,等.Web程序设计教程[M].北京:高等教育出版社,2004.
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />
相关文章:
基于J2EE的公交查询系统的设计与实现04-26
网上书店的设计与实现04-26
学校“贫困学生”帮助网站设计与开发04-26
基于.NET的网上售书系统的设计与实现04-26
基于ASP的学生信息管理系统的设计与实现04-26
作业审阅系统的设计与实现04-26
交互分配法计算的EXcel处理04-26
软件外包服务中的CMM应用04-26
基于windows系统下的远程协助研究04-26
交通信息网上查询系统的设计与实现04-26