admin 管理员组

文章数量: 1184232


2024年5月18日发(作者:isalpha 这个函数干嘛)

维普资讯

2006年第1 1期 福 建 电脑 83 

基于WEB的Access数据库安全 

游向峰 

f福建警官职业学院福建福州350014) 

【摘 要l:当前,ASP+Access数据库作为一种典型的服务器端网页设计技术,被广泛地应用于互联网应用中,如:网上 

银行、电子商务、搜索引擎等方面。但也带来了不容忽视的安全隐患。本文介绍ASP+ACCESS技术来架构网站时可能存在 

的安全隐患及相应的解决方法.并对网络安全建设进行一些有益的探讨。 

【关键字】;Web ASP Access数据库安全 

随着Intemet的发展.Web技术13新月异。ASP(Active 

Server Pages)作为一种典型的服务器端网页设计技术,被广泛地 

应用在各种互联网应用中。同时Access数据库作为微软推出的 

以标准JET为引擎的桌面型数据库系统。由于具有操作简单、界 

面友好等特点.具有较大的用户群体。因此ASP+Access的模式 

成为了绝大多数中小型网上应用系统的首选方案。但ASP+Ac. 

cess

的解决方案在为我们带来巨大便捷的同时.也给我们带来 

了不容忽视的安全问题 

ASP+Access解决方案的主要安全隐患来自Access数据库 

本身的安全性,其次是在于ASP网页设计过程中的安全漏洞。 

接下来.我们将讨论如何来提高基于WEB的Access数据库安 

全。 

在讨论Access数据库的安全时.人们自然而然想到的是给 

AcceSS数据库加上密码.其实这是一个误区.因为Access数据 

库的加密机制非常简单.且网络上也有许多针对Access数据库 

的的解密程序.所以无论是否设置了多么复杂的数据库密码.只 

要数据库被获得.就可以进行破解.其信息就没有任何安全性可 

言。那是不是对Access数据库的安全就束手无策了呢?其实.在 

ASP+Access方案的运用中.Access数据库是在WEB服务器上 

的后台运行的。所以.只要不让别人获取我们的Access数据库 

文件.别人就无从下手进行解密了.那么我们的Access数据库 

就是安全的!我们的数据也就安全了! 

根据笔者多年来从事WEB软件开发的经验.谈谈如何来防 

止Access数据库被下载.做到数据的安全。 

1.加强Access数据库存储的安全性: 

在ASP+Access应用系统中.如果能获得或者猜到Access 

数据库的存储路径和数据库名.则该数据库就可以被下载到本 

地。例如:对于网上花店的Access数据库,人们一般命名为hua. 

mdb或flower.mdb等.而存储的路径一般为”URUdatabase”或干 

脆放在根目录(”URL/”)下。这样,只要在浏览器地址栏中输入地 

址:URUdatabase/hua.mdb,就可以轻易地把hua.mdb下载到本 

地的机器中.然后进行解密。 

解决办法是采用非常规命的方法.并把它存放在多层目录 

下。 

即为Access数据库起个非常规的名字.例如: 

FsfSgfdgu084.mdb, 

再把它放在如下目录中: 

URIJhfff43/winres/sonic 

这是防止数据库被找到的最简便方法 这样.对于一些通过 

猜的方式得到Access数据库文件名的非法访问能起到有效的 

阻止作用。 

2.更改数据库文件的扩展名.防止Access数据库文件被误下 

载: 

因为ASP文件是服务器端文件.它先被WEB服务器先执 

行再把结果传送到客户端的浏览器上显示。所以,我们可以将数 

据库的扩展名改为、asP.当有客户端请求时.但该数据库会被当 

ASP文件运行.返回的结果为一堆乱码。这样别人就看不懂数据 

内容了.而且数据还可以被Web服务器正常的读写。 

3.向数据库内加入错误的asp代码: 

如果你仅做完上述的两种情况就以为数据安全了的话.那 

就错了。因为当有经验的对方猜到了你的数据库路径以后,先执 

行.等该文件执行完后再另存为XX.asp,再改扩展名为.mdb,就 

可以用Access打开了。要解决这个问题可以在数据库内添加错 

误的asp代码。具体做法是先建立一个不用表,表内只有一列. 

并且插入一句错误的asp代码即可。例如:<%ififif。 

这样一来对方打开数据库的页面时就只会出现asp脚本的 

错误信息.而不法下载你的数据库文件。 

4.使用ODBC数据源 

在ASP程序设计中.应尽量使用ODBC数据源.不要把数 

据库名直接写在程序中,否则.数据库名将随ASP源代码的失 

密而一同失密 例如: 

DBPath=Server.MapPath ./hgf43/winres/sonic/FsfSgfdgu084. 

mdb”) 

conn.Open”driver={MicrosoftAccessDriver f★.mdb)l;dbq=” 

&DBPatll 

可见.即使数据库名字起得再怪异,隐藏的目录再深,ASP 

源代码失密后.数据库也很容易被下载下来。如果使用ODBC数 

据源.就不会存在这样的问题了: 

conn.open”ODBC—DSN名” 

5.优化程序设计.提高系统安全 

ASP代码是利用表单(form)实现与用户交互的功能.而相 

应的内容会反映在浏览器的地址栏中.如果不采用适当的安全 

措施,只要记下这些内容,就可以绕过验证直接进入某一页面 

例如在浏览器中敲人”…page.sap?x=1”.即可不经过表单页面直 

接进入满足”x=1”条件的页面。因此,在设计验证或注册页面时. 

必须采取特殊措施来避免此类问题的发生 

我们可以利用Cookies或Session对象进行注册验证.以防 

止未经注册的用户绕过注册界面直接进入应用系统.可以采用 

Session对象进行注册验证 Session对象最大的优点是可以把某 

用户的信息保留下来.让后续的网页读取 例如.某注册页面设 

计要求用户注册成功后系统启动reg.asp?ce=1页面 如果不采 

用Session对象进行注册验证,则用户在浏览器中敲人”URL/reg. 

asp?ce=1”即可绕过注册界面,直接进入系统。利用Session对象 

可以有效阻止这一情况的发生。相关的程序代码如下: 

<% 

读取用户输入的账号和密码 

UserlD=Request(”UserlD l 

Password=Request(”Password”、 

检查UserlD及Password是否正确 

If UserlD<>”UserlD”Or Password<>”password”Then 

Response.Write”对不起,您输入的账号或密码错误!” 

Response.End 

Else 

Session(”Passed”)-=True 

EndIf 

将Session对象设置为通过验证状态 

%> (下转第78页) 

维普资讯

78 福 建 电脑 2006年第1 1期 

视图的信息隔离保护机制通过授予用户操作视图的权限.可以 

防止用户对基表的操作。不同的用户对于数据库具有不同的权 

限一一个用户在执行某种任务时.它得到的权限只能使它看到完 

成此任务所应看到的数据库的部分.其他信息对它来说是隐蔽 

的。即某一用户在某一时刻执行某一任务时.只能通过数据库的 

个视图来访问数据库.它对数据库的权限通过它对这个视图 

所拥有的权限来反映.系统中的”主体客体”关系是一种”用户视 

图”的关系:引人角色的概念后.则是一种”角色视图”的关系 

用户进入系统时.根据自己的角色采用自主访问控制的策 

略.对于自己所拥有的视图权限可以授予其他用户.也可以收 

回 这种授予或收回权限的操作通过改变”角色视图”的关系来 

实现.与应用程序无关.也不必修改用户的口令。在用户访问数 

据库时.应用程序通过检查”角色视图”关系来决定用户具有使 

用哪一个视图访问数据库的权限 

连接可以告诉你谁试图访问SQL Se nrer.所以监视和控制 

连接是保护数据库安全的一个非常好的方法 对于一个大型的 

活动的SQL Server数据库,可能会有太多的数据连接需要监控, 

但是监控失败的连接是非常有价值的.因为它们可能表现出使 

用的企图 你可以在企业管理器中在服务组上右击.然后选择 

Properties,记录下失败连接的日志。然后点击Securitv选项卡. 

在Audit IJevel下点击Failure来停止并重新启动服务器 

4.6数据库的备份与恢复 

定期备份数据库是最稳妥的防止磁盘故障f主要是系统发 

生故障)的方法.它能有效的恢复数据,这是一种比较廉价的保 

险形式.同时也是最简单的确保能恢复大部分信息的方法 我们 

备份操作一般都是将备份存储在数据库服务器的本地驱动器 

上.但这并不意味着数据库备份就安全.如出现硬盘的损坏有可 

能造成数据的丢失.因此一般应将数据库备份同时保存到备份 

机上 这样才能做到万无一失。 

4.3对数据库的访问控制 

访问控制是对用户访问数据库各种资源(包括基表、视图、 

在局域网内的任何一台工作站计算机上安装Micmsoft 

各种目录以及实用程序等)的权力(包括创建、撤消、查询、增、 Windows NT及Micmsoft SQL Server,并在该机上建立一个与服 

cFOsoft SQL Server系统 

删、改、执行等)的控制。这是数据库安全的基本手段。访问控制 

务器中的数据库同名的数据库.利用Mi

在数据库之问是相互独立的.一个用户在一个数据库所获得的 本身提供的异机传送工具f在Microsoft SQL Enterprise Manager 

访问权不能用物其他数据库。一个用户可能在一个数据库中享 中的Tools菜单下的Database/Object Transfer)通过设置定时f可 

有DBA特权.而在另一个数据库中可能是一般用户。数据库用 

以是每周、每月、每日或每时)由计算机自动的把服务器中数据 

这样一旦服务器f操作 

户按其访问权力的大小.一般可分为以下3类:1、一般数据库用 

库的数据传送到该工作站机的数据库中.

户;2、具有支配部分数据库资源特权的数据库用户:3、具有 系统1崩溃或Microsoft SQL Server系统崩溃时.只要重装服务器 

DBA特权的数据库用户。 

操作系统(Microsoft Windows NT)或重装Microsoft SQL Server仍 

不同的用户对数据库有不同的访问权.数据库管理系统按 

然可以采用异机传送工具来通过该工作站机把数据传回至服务 

照用户的访问权限进行访问控制就是通过对用户的标识与鉴别 

器的Microsoft SQL Server数据库中.以确保数据的安全恢复 

及授权实现的 SQL Server的权限系统是基于组成Windows权 

5.结束语 

限基础的同一附加模型.通过对用户或角色设置GRANT(授予、 

SQL Server数据库的安全与网络安全、操作系统安全以及 

权限、REVOKE(¥销1权限、DENY(拒绝)权限,可以明确特定用户 数据库系统安全是紧密结合的.任何一个环节上的疏忽.都会造 

所属的特定角色所拥有的特定对象权限.代表着用户或角色具 成整个系统的安全风险.因此必须根据具体的应用环境的安全 

需要分析安全薄弱环节,并制定统一的安全管理策略加以实施 

有执行某些操作的权利。 

4.4利用数据加密技术 随着数据库技术的不断发展,不同类型的数据库系统.如并行式 

SQL Server数据库提供的基本安全技术能够满足一般的数 数据库、分布式数据库等不断产生.使得数据库系统的安全面临 

据库应用,但对于一些重要部门或敏感领域的应用.仪靠上述这 新的安全技术挑战,这有待我们去进一步研究和解决 

些措施难以完全保证数据的安全。因此.有必要对数据库中存储 

的重要数据进行加密处理,以实现数据存储的安全保护 SQL 参考文献: 

数据库系统教程上册『M1.北京.电子工业出版社,2004 

server数据库数据的使用方法是以字段为基本单位的、决定了 

1.王能斌.

谈网络数据库安全技术[1]电大理工,2005/01 

它需要对数据文件中随机的一段随时进行加、解密 我们可以对 

2许维刚.

MS SQL Server分布式数据库的安全性研究【I_.电脑 

数据库密码系统采用公开密钥.并建立多级密钥结构 既使数据 

3.郭鲜凤.张和义.

与信息技术.2002/2 

库的字段名都具有自己的子密钥.这些子密钥组成一个能够随 

4.罗孝骞.如何提高SQL Server的安全性【J].科技资讯,2005/23 

时加解密的公开密钥 同时.加密算法应该是绝对保密的而且算 

5张静,许焱平.基于SQL Server的数据库安全初探LJ J.福建电脑, 

法本身也要适应数据库系统的特征.加解密要响应迅速.但是. 

2005/08 

我们只能对SQL Server数据库中数据进行部分加密.索引字段、 

6.深入分析计算机网络的安全隐患全面阐述防御策对策[EB/OL] 

关系运算的比较字段 表间的连接码字段都不能加密 

http://wv ̄v.cert.org cn/amcles/tabloid/comrnon/2004031721526.shmal 

4.5监控SQL SERVER的连接 

’—。卜 + —。卜 + + + + +。+ —。卜 —。卜 —。卜 —。卜 —。卜 + + +-+一+一+-+一十-+-+一+, +一+-+-+-+-+-+“+一+-+一+一+一+-+一+-+-+一+一+-+一+一+・ 

(上接第83页) 

进入应用程j芋后.首先进行验证: 

<% 

HTML部分进行修改、完善,只是不能对ASP加密部分进行修 

改.否则将导致文件失效 

总结:基于WEB的Access数据库安全问题的关键是防止 

Access数据库文件被下载.只要别人拿不到你的数据库文件.就 

无法进行破解。其次,如果在ASP程序设计中多注意COOHE 

如果未通过验证.返回Login状态 

If Not Session(”Passed”)Then 

Response Redirect”Login.asp” 

EndIf 

%> 

6.对ASP页面进行加密.有效地防止ASP源代码泄露: 

为了防止ASP源代码泄露.被别有用心的人获取Access数 

据库的路径和文件名.我们可以对ASP页面进行加密 一般有 

两种方法对ASP页面进行加密 一种是使用组件技术将编程逻 

及Sessjon的正确应用.防止因ASP程序设计不当而泄漏有关信 

息,防止别人绕过相关认证,越权操作。做好这两点则WEB数据 

就可安全了f 

参考资料: 

辑封装入DLL之中:另一种是使用微软的ScriptEncoder对ASP 

1《使用ASP+ACCESS技术架构网站的安全隐患及解决对策》王丹玲 

页面进行加密 笔者认为.使用组件技术存在的主要问题是每段 

代码均需组件化.操作比较烦琐,工作量较大:而使用ScriptE 

coder对ASP页面进行加密,操作简单、收效良好。而且.HTML 

部分仍具有很好的可编辑性 ScriptEncoder只加密在HTML贝 

面中嵌入的ASP代码.其他部分仍保持不变,这就使得我们仍 

然可以使用FrontPage或Dreamweaver等常用网页编辑工具对 

福建电脑.2005年10期 

2.《关于ASP+ACCESS数据库的安全问题》林姿琼漳州师范学院学 

报(自然科学版) 2005牟03期 

3.《网络程序设计一ASP}蔡翠平主编清华大学出版社出版 

4.《AsP动态网站开发教程》廖彬山高峰霞编著清华大学出版社出版 


本文标签: 数据库 用户 进行 数据