学院首页>网络编程>ASP>ASP漏洞(二)[ACCESS数据库被下载]

ASP漏洞(二)[ACCESS数据库被下载]

作者:未知 来源:未知 添加时间:2006-5-21 10:28:36
(ACCESS mdb 数据库有可能被下载的漏洞)



问题描述:

  在用ACCESS做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的ACCESS数据库的路径和数据库名称,那么他能够下载这个ACCESS数据库文件,这是非常危险的。比如:如果你的ACCESS数据库book.mdb放在虚拟目录下的database目录下,那么有人在浏览器中打入:

http:// someurl/database/book.mdb

  如果你的book.mdb数据库没有事先加密的话,那book.mdb中所有重要的数据都掌握在别人的手中。



  解决方法:

  (1) 为你的数据库文件名称起个复杂的非常规的名字,并把他放在几目录下。所谓"非常规",打个比方:比如有个数据库要保存的是有关书籍的信息,可不要把他起个"book.mdb"的名字,起个怪怪的名称,比如d34ksfslf.mdb,再把他放在如./kdslf/i44/studi/ 的几层目录下,这样黑客要想通过猜的方式得到你的ACCESS数据库文件就难上加难了。

  (2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如: 



DBPath = Server.MapPath("cmddb.mdb")

conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath 



  假如万一给人拿到了源程序,你的ACCESS数据库的名字就一览无余。因此建议你在ODBC里设置数据源,再在程序中这样写:

conn.open "shujiyuan"



  (3)使用ACCESS来为数据库文件编码及加密。首先在选取"工具->安全->加密/解密数据库,选取数据库(如:employer.mdb),然后接确定,接着会出现"数据库加密后另存为"的窗口,存为:employer1.mdb。接着employer.mdb就会被编码,然后存为employer1.mdb..

  要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。

  接下来我们为数据库加密,首先以打开经过编码了的employer1.mdb,在打开时,选择"独占"方式。然后选取功能表的"工具->安全->设置数据库密码",接着输入密码即可。

  为employer1.mdb设置密码之后,接下来如果再使用ACCEES数据库文件时,则ACCESS会先要求输入密码,验证正确后才能够启动数据库。

  不过要在ASP程序中的connection对象的open方法中增加PWD的参数即可,例如:

param="driver={Microsoft Access Driver (*.mdb)};Pwd=yfdsfs"

param=param&";dbq="&server.mappath("employer1.mdb")

conn.open param

  这样即使他人得到了employer1.mdb文件,没有密码他是无法看到employer1.mdb的。  
站内搜索