9.2 Access数据库可能被下载的漏 般来说,在提供asp权限的Web 服务器上不可能提供代为设定DSN的 服务,使用的 ACCEsS mdb数据库可 能被人下载,因此asp程序使用的数据 库通常都局限在使用mdb数据库,而 mdb远端数据库所在的位置是使用在第 8章数据库连接方法中讲到过的DSN LESS方法直接在asp中指定的,方法如 下
9.2 Access数据库可能被下载的漏 洞 一般来说,在提供asp权限的Web 服务器上不可能提供代为设定DSN的 服务,使用的ACCESS mdb数据库可 能被人下载,因此asp程序使用的数据 库通常都局限在使用mdb数据库,而 mdb远端数据库所在的位置是使用在第 8章数据库连接方法中讲到过的 DSNLESS方法直接在asp中指定的,方法如 下 :
constr="DBQ=+server mappath("database/source. mdb")+ DefaultDir- DRIVER=(Microsoft Access Driver( mdb)) Driverld-=25: FIL= Access, ImplicitCommitSync=Yes: MaxB uffer Size=512 MaxScanRows-8, PageTimeout=5 Safe Transactions=0; Thread s=3: UserCommitSync=Yes 正如前文所言,在这种情况下mdb库很可能被他 人下载,从而造成诸如密码等的泄露。所以,应 该采取一定的措施严禁code.asp之类的程序,限制 mdb的下载
< % connstr = "DBQ="+server.mappath("database/source.mdb")+"; DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)}; DriverId=25;FIL=MSAccess;ImplicitCommitSync=Yes;MaxB ufferSize=512; MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Thread s=3;UserCommitSync=Yes;" %> 正如前文所言,在这种情况下mdb库很可能被他 人下载,从而造成诸如密码等的泄露。 所以,应 该采取一定的措施严禁code.asp之类的程序,限制 mdb的下载
在用 Access做后台数据库时,如果有人通过 各种方法知道或者猜到了服务器的 Access数据库 的路径和数据库名称,那么他就能够下载这个 Access数据库文件,这是非常危险的。比如:如 果 Access数据库 book mdb放在虚拟目录下的 database目录下,那么有人在浏览器中打入: http://someurl/database/book.mdb 如果 book mdb数据库没有事先加密的话,那 book. mdb中所有重要的数据都掌握在别人的手中 解决方法: (1)为数据库文件名称起个复杂的非常规的名 字,并把它放在多级目录下
在用Access做后台数据库时,如果有人通过 各种方法知道或者猜到了服务器的Access数据库 的路径和数据库名称,那么他就能够下载这个 Access数据库文件,这是非常危险的。比如:如 果 Access 数 据 库 book.mdb 放 在 虚 拟 目 录 下 的 database目录下,那么有人在浏览器中打入: http://someurl/database/book.mdb 如果book.mdb数据 库没有事先加密的话, 那 book.mdb中所有重要的数据都掌握在别人的手中。 解决方法: (1)为数据库文件名称起个复杂的非常规的名 字,并把它放在多级目录下
(2)不要把数据库名写在程序中。 (3)使用 ACCESS来为数据库文件编码及加密 首先在选取“工具->安全->加密/解密数据库,选 取数据库(如: employer.mdb)”,然后按确定, 接着会出现“数据库加密后另存为”的窗口,存 为: employer. mdb。接着 employer. mdb就会被编 码,然后存为 employer.mdb 要注意的是,以上的动作并不是对数据库设置密 码,而只是对数据库文件加以编码,目的是为了 防止他人使用别的工具来査看数据库文件的内容 接下来为数据库加密。首先以打开经过编码了的 employer. mdb,在打开时,选择“独占”方式
(2)不要把数据库名写在程序中。 (3)使用ACCESS来为数据库文件编码及加密。 首先在选取“工具->安全->加密/解密数据库,选 取数据库(如:employer.mdb)” ,然后按确定, 接着会出现“数据库加密后另存为”的窗口,存 为:employer1.mdb。接着employer.mdb就会被编 码,然后存为employer1.mdb。 要注意的是,以上的动作并不是对数据库设置密 码,而只是对数据库文件加以编码,目的是为了 防止他人使用别的工具来查看数据库文件的内容。 接下来为数据库加密。首先以打开经过编码了的 employer1.mdb,在打开时,选择“独占”方式
然后选取功能表的“工具~>安全->设置数据库密 码”,接着输入密码即可。 为 employer. mdb设置密码之后,接下来如果 再使用 Accessi数据库文件时,则 Access会先要求输 入密码,验证正确后才能够启动数据库 不过要在ASP程序中的 connectior对象的open方 法中增加PWD的参数,这样即使他人得到了 employer. mdb文件,没有密码他是无法看到 employer. mdb的。不过,实际上已经有人编写出 专门破解 access数据库密码的程序,因此在使用时 应予以注意
然后选取功能表的“工具->安全->设置数据库密 码” ,接着输入密码即可。 为employer1.mdb设置密码之后,接下来如果 再使用Access数据库文件时,则Access会先要求输 入密码,验证正确后才能够启动数据库。 不过要在ASP程序中的connection对象的open方 法中增 加PWD 的参 数, 这样即 使他 人得到 了 employer1.mdb 文 件 , 没有密码他是无法看到 employer1.mdb的。不过,实际上已经有人编写出 专门破解Access数据库密码的程序,因此在使用时 应予以注意