ASP+ACCess网站的安全及对策探讨

2009-09-18 06:02
新媒体研究 2009年12期
关键词:程序员代码数据库

周 惠

[摘要]ASP+Acces的网站具有开发简单、实用性强的特点,因此,这种模式成为许多中小型网站的首选方案。但ASP+Access解决方案在为我们带来便捷的同时,也带来了不容忽视的安全问题。对Access动态网站数据库文件常见的几种不安全现状进行分析,并针对这些情况,归纳整理目前一些通用的解决方案,遂一分析这些解决方案的不足之处和可能存在的安全隐患。最后·为大家提供并讲解切实有效的解决方法,可以最大限度的解执^mcess~数据库动态网站的数据库文件的安全问题。

[关键词]数据库文件ASP安全对策

中图分类号:TP3文献标识码:A文章编号:1671—7597(2009)0820040—01

一、引言

ASP+Access结构的网站最突出的优点是切入点低,设计与维护简单,因此,这种模式无疑是我们构建网站的首选方式,特别是中小型网站,很多都是采用的这种模式。但是这种模式下构建的网站安全问题也是十分明显的。特别是Access数据库文件,很容易被下载。针对这种情况,本文对目前Access数据库文件被下载的常见几种情况作了分析,并提出了相应的解决方法。

二、几种常见的下载Access数据库文件的方法

1凭借经验或是利用程序猜测Access数!据库文件的路径和名称

一般的程序员写程序的时候都有这么一个习惯,将数据库文件放在data、database等文件夹下面,下载这样的数据库只要在IE上直接打入地址就可以下载了。

2Asp数据连接文件的源码泄露

例如:以下是Asp数据连接文件的源码:

DBPath=:Server,MapPath(“.../123/abc/asfadf.mdb”)

如果这部分代码泄露,即使数据库名字起得再怪异,隐藏的目录再深,数据库文件也难免被下载。

3凭借其它技术手段进行有目的性攻击

可以通过请求返回的特殊错误提示直接取得数据库路径与文件名。

三、目前逼用解决Access数据库文件被下载的方案

(一)修改数据库文件的路径与文件名

这种方法就是将数据库文件的路径与文件名修改成别人意想不到的,如:sdert/ccqasd/wwl2341@%1po,mdb等这类路径与文件名。其目的就是防止别人猜到数据库而被下载。但是,如果编写一个专门的猜测程序,可以猜测出这类数据库文件路径与名称,所以这不是最好的方法。

(二)修改数据库名后缀为Ase或Aep格式式

IIs对*,asp与*.asa以外的内容,不做任何处理就直接输出,而对于*.asp与*as8后缀的文件则自动作解析。所以对于有些网站,即使你知道了网站数据库文件的路径与文件名,但是直接在IE中打上地址,仍然无法下载,因为程序员已经将*.mdbl的文件变成*.asp或是*.asa等文件。我们看到的数据库文件将是一堆乱码,没有任何有用信息。但是,有经验的人遇到这种情况,往往会利用一些工具,如IFlashGet等工具来完成下载。

(三)数据库文件名前加“#”等特殊字符防止被下载

IIs在处理“#”等特殊字符时,会自动跳过不执行,而只能识别“#”前面的部分,对于后面的自动去掉,从而起到保护数据库文件的作用。但是,我们只要把“#”换成(nicode)uTF-8编码,就可以下载数据库了。#”在UTF-8编码是“%23”,所以只要用“%23”来代替“#”号就可以完成下载。

(四)用加密数据库文件的方法解决文件被下载后带来的危害

此种方案也就是对Lccess数据库文件进行加密,但是,Access~数据库的加密机制是非常脆弱的。可以轻松地编写一个程序来破解代码。

四、有效防止Access数据库文件被别人下载的方法

(一)针对虚拟主机情况

在mdb文件中建一个表,假设表中的一个字段名叫:NotDownLoad,并在字段中填入:“(%=aLl%>”(这里你可以随便输入什么,只要不是正确的IAspi语句就行了),再把数据库改名为{,aspS~,asa,就可以起到真正防下载的作用。在IE中遇到了asp文件,服务器就会自动去解析这些代码,而这段代码又无法被服务器解析出来,IE就会报错,这样数据库绝对不会被正确的下载。

接下来,我们还得在数据库名前加上一个“#”。这里的“#”主要是防sqL中别人用注入法来跨库查询]Access数据库文件中的管理员记录。如果我们在库名前面加上“#”的时候,就算你猜测到了数据库文件的路径与文件名,我们也不怕类似的提交:select*from d:web\asp\#1mtof,asp。这类SQL查询语句,系统会提示出错。

(二)针对拥有托管主机权限的情况

将数据库文件放在WEB目录外,也就是将数据库放到IIS以外的目录。这种情况下,无论别人有多高技术,也是不可能下载到你的数据库文件的。因为它根本不在WEB目录里。但这种方法不适合利用虚拟空间的单位和个人。

五、结束语

要想彻底解决Asp+Access:模式下网站的数据库文件安全,还需要网站管理员平时多注意一些系统的安全,以及程序员写SP/ASP,NET/JSP代码本身的安全,否则依然存在安全的隐患,甚至是对网站或是服务器致命的打击。

猜你喜欢
程序员代码数据库
2020年程序员依然很吃香
程序员之子
数据库
神秘的代码
一周机构净增(减)仓股前20名
重要股东二级市场增、减持明细
加班
数据库
数据库
数据库