APP下载

谈IIS下基于ASP技术和Access数据库网站的安全性

2010-04-12□陈

山西广播电视大学学报 2010年3期
关键词:入侵者日志页面

□陈 瑞

( 太原理工大学计算机与软件学院,山西 太原 030024)

采用IIS、 ASP技术和Access数据库搭建服务器设计简单方便,且易于管理,从而被广泛采用。但IIS下使用ASP技术和Access数据库搭建的服务器在为我们带来方便的同时也带来了不容忽视的安全问题,如页面被篡改,数据库被下载等。针对这些情况,本文就目前常见的安全性问题进行了简单的分析,并根据自己平时工作和学习经验提出了相应的防范措施。

一、Access数据库的安全隐患及防范措施

1.Access数据库的安全问题

在基于ASP技术和Access数据库应用系统中,如果入侵者获得数据库的存储路径和数据库名,则该数据库很容易被下载下来。如果数据库没加密或被破解,则数据库中所有信息即被盗用。

2.一些常见的Access数据库安全防范措施

(1)改变数据库文件的名称及扩展名。将数据库文件起个复杂的且无规则的名字,还可以在数据库名称前加“#”,防止入侵者猜到。将数据库默认的扩展名mdb修改为asp或者asa等不影响查询的名字,这样可以避免使用IE浏览器下载。

(2)改变数据库文件存放的路径。一般不要将数据库放在Web目录下,因为一些根目录下的文件可以下载。数据库文件应该放在多级目录下,这样就增加了安全性。

(3)给数据库文件加密码。用户可以用为Access数据库设置密码的方法保护数据,这样即使入侵者得到了数据库,也无法查看数据库中的内容。为了防止入侵者使用别的工具查看数据库文件的内容,首先应对数据库文件添加密码,具体操作步骤:在Access编辑窗口(未打开任何数据库文件),选择“工具”菜单,单击“安全”,选择“加密/解密数据库”,在“加密/解密数据库”窗口中选取需要加密的数据库,接着会出现“数据库加密后另存为”的窗口,将其保存。 接下来为数据库加密,首先打开经过加密的数据库,注意要选择“独占方式”打开,然后选择“工具”—“安全”—“设置数据库密码”,输入密码即可。

(4)使用ODBC连接数据库。应尽量使用ODBC数据源,不要把数据库名写在程序中,否则入侵者看到ASP源代码也就看到了数据库名以及存放路径。操作也比较简单,只需新建一段连接数据库代码文件,将其命名为conn.asp。这样只要在需要调用数据库的ASP文件中加入就可以实现数据库的调用。这样就隐藏了调用语段,解决了ASP源代码暴露后网站数据库名和存放路径暴露的问题。

(5)添加数据库名的扩展映射。通过修改IIS设置来实现,选择IIS属性—主目录—配置—映射—应用程序扩展那里添加.mdb文件的应用解析,修改后下载数据库就会出现404或500等错误。这样即使入侵者掌握数据库名和存放路径也无法下载。

二、ASP的安全隐患及防范措施

源程序代码的安全隐患及防范措施。由于ASP不是把源程序编译成目标机器代码来执行,而是源程序直接执行,这样程序源代码的安全性将大大降低,任何人只要访问站点就有可能获取源代码。

对ASP页面进行加密可以有效地防止ASP源代码泄露。有两种方法:一种是使用组件技术将程序代码封装入DLL中;另一种是使用微软的Script Encoder对ASP页面进行加密。使用组件技术需对每段代码组件化,操作烦琐,工作量较大,而使用Script Encoder对ASP页面进行加密操作简单,掌握一些基本的命令即可,而且可以批量处理ASP页面,还可以只加密在HTML页面中嵌入的ASP代码,其他部分保持不变,这样可以使用网页编辑工具对HTML部分进行修改,所以建议读者使用Script Encoder对ASP页面进行加密。

Filesystemobject(即FSO)组件的威胁。通过FSO组件可以对ASP文件进行包括文本文件的创建、修改、删除、查询、复制等操作,入侵者就是利用FSO的这些功能特点篡改和下载FAT分区上的任何文件,即使是NTFS分区如果分配的权限不合适,也容易被攻击。

为了防止入侵者利用FSO对网站的威胁,首先应将Web目录建立在NTFS分区上,并且目录不要设定Everyone完全控制,对于不同的用户分配不同的权限。还可以修改FSO组件名称来达到防范目的,比如将FSO组件名更改为FSOa,入侵者在调用此组件过程中如果还使用FSO这个名称就不起作用。如果在应用中不需要FSO组件,可以将其删除。

验证漏洞。验证被绕过,入侵者就可以访问到未授权的内容。

防止验证漏洞,首先应该限制未被授权的用户访问被限制的ASP内容,Web服务器将进行身份验证,检查用户是否拥有访问权限。

还可以使用Session对象。因为ASP代码使用表单实现交互,相关的内容会出现浏览器的地址栏中,只要记住地址,就可以绕过验证直接进入页面。为防止未经授权的用户绕过验证直接进入未被授权页面,可以采用Session对象对登陆未被授权页面的用户进行验证。

页面缓存漏洞。如果浏览器设置的是浏览网页时首先查看本地缓冲区里的页面,则非法用户不用经过验证就可以访问本地缓冲区里未经授权的页面。

为阻止此类事件发生,Web服务器必须禁止页面缓存,访问页面时强制浏览器向Web服务器请求新页面。还可以利用ASP的Response对象和Expires属性和Clear方法来清除缓冲区的所有HTML输出。

输入框信息过滤漏洞。输入框中输人标准的HTML语句或者JavaScript语句会改变输出结果,如果输入框输入数据查询语句,就可以得到数据库信息。

可以通过限定只允许输入字母与数字,屏蔽掉特殊字符。同时对输入字符的长度进行限制来防止出现此类情况。

Cookies的安全漏洞。Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存上或是从客户端的硬盘读取数据的一种技术。当浏览某网站时,Cookies可以记录用户ID、密码、浏览过的网页、停留的时间等信息。当再次访问该网站时,用户不用输入ID、密码就直接登录或者他人可以看到你的用户ID和密码,非常危险。

给密码加密,这样入侵者获得cookies信息,也无法登陆,还可以设置密码信息不要存放于cookies中。

利用随机数实现防御Cookies欺骗。用户在登陆的时候需要验证两个Cookies,一个是用户名,一个是随机数,相当于多了一个“验证码”。用户名可以很轻松的修改,但是随机数就很难猜到了。即使入侵者把用户名修改成管理员的用户名,因为随机数不符合,也无法登录。

ASP木马。入侵者将木马上传到服务器后,利用木马可以添加管理员账号,然后用管理员账号进行文件修改删除等操作,还可以通过木马直接删除网站里面的目录和文件。防止ASP木马入侵,可以限制上传文件的格式,例如只允许压缩文件上传;将上传的文件存放在固定的目录下,并将该目录的“执行权限”设置成“无”。

三、IIS安全隐患及防范措施

IIS(即 Internet Information Server)是允许在公共Intranet或Internet上发布信息的Web服务器, IIS为Web服务器的信息发布提供了很大的方便,基于ASP技术和Access一般也是通过IIS来发布,所以IIS的安全问题不容忽视,必须加强IIS的安全机制。

1.删除危险的IIS组件。默认安装IIS组件中会安装一些带有安全威胁的组件,用户可以根据自己的需要删除IIS组件。

2.安装完毕后建议把默认生成的Inetpub目录及其下的文件删除,或者不要把Web文件存放在此默认目录下,因为很多入侵者知道这个默认路径,这样就很容易被入侵,改变默认路径就避免了这样的安全隐患。

3.对IIS中的文件分类并设置权限。为Web 站点上不同类型的文件建立目录,然后对目录分配适当权限。

4.对Web站点设置权限。建议对读操作允许、写操作不允许、脚本源访问不允许、目录浏览、日志访问和索引资源建议关闭,执行权限建议选择“仅限于脚本”。

5.修改IIS中网站调试时提示的信息。在网站目录属性对话框的“主目录”页面中,点击“配置”—“应用程序配置”—“调试”,在“调试”页面,如果选择“向客户端发送下列文本错误信息” ,那么入侵者就会知道你的错误和文件存放路径,所以不选此项。

6.修改IIS日志的存放路径并修改访问日志权限。IIS的日志默认存放在系统盘windowsSystem32LogFiles目录下,入侵者会利用日志默认路径这一特点,查找日志,找到一些需要的信息。所以要对日志存放路径进行修改,并建议使用W3C扩充日志文件格式,同时设置日志的访问权限。

四、结束语

本文较为系统的分析了IIS下基于ASP技术和Access数据库网站的安全性问题,并提出了相应的防范措施。但随着网络技术的不断发展,针对网站的安全问题会越来越多,这就要求网站开发人员和维护人员要不断地学习新技术,研究新方法,最大限度地去保证网站的安全运行。

参考文献:

[1]吕继迪,孙明丽,庞娅娟. ASP程序开发范例宝典[M]. 北京:人民邮电出版社,2009.

[2]余连新.动态网页源码安全性研究及实现[J].网络安全技术与应用,2006,(2).

猜你喜欢

入侵者日志页面
刷新生活的页面
一名老党员的工作日志
扶贫日志
“入侵者”来袭
游学日志
“外星人”入侵档案之隐形入侵者
小行星2014 AA:地球的新年入侵者
一种基于粗集和SVM的Web日志挖掘模型
网站结构在SEO中的研究与应用
浅析ASP.NET页面导航技术