选择显示字体大小

防止access数据库被下载的9种方法

篇首语:原来改mdb为asp就能防下载是鬼话。
    引子:昨天和animator试验了一下,把 data.mdb文件改名为data.asp文件后放在wwwroot目录里。然后 在ie中输入data.asp路径后,发现ie显示一片空白,右键- >察看源文件,跳出记事本,将内容另存为。mdb文件 ,用access打开,发现需要密码,也就是说至少文件头被破坏。
    然后用 flashget试验下载data.asp文件,并另存为data.mdb文件,发现用access打开完好无损!!!看 来,好一些编程人员在开发的时候都认为,改了mdb后缀为asp就能防下载的概念,是错的!后台数据库被下载对于一个asp+a ccess的网站来说无疑是一场惨绝人寰的灾难。今天找了各方的文章,归纳一下有以下9种办法防止数据库被下载(欢迎补充):& nbsp;
    1.发挥你的想象力 修改数据库文件名不用说,这是最最偷懒的方法,但是若攻击者通过第三方途径获得了数据库的路径),就玩完了。比如说攻击者本来只能拿到list权 ,结果意外看到了数据库路径,就可以冠冕堂皇地把数据库下载回去研究了。另外,数据文件通常大小都比较大,起再隐蔽的文件名都瞒 不了人。故保密性为最低。
    2.数据库名后缀改为asa、asp
    此法须配合一些要进行一些设置,否则就会出现本文开头的那种情况
    (1)二进制字段添加(此招我还没有炼成-_-+)。
    (2) 在这个文件中加入<%或%>,iis就会按asp语法来解析,然后就会报告500错误,自然不能下载了。可是 如果只是简单的在数据库的文本或者备注字段加入<%是没用的,因为access会对其中的内容进行处理,在数据库里他会以 < %的形式存在,无效!正确的方法是将 <%存入ole对象字段里,这样我们的目的就能达到了。&nbs p;作方法:首先,用notepad新建一个内容为 <% 的 文本文件,随便起个名字存档。
    接着,用access打开您的数据库文件,新建一个表,随便起个名字,在表中添加一个ole对象的字段,然后添加一个记录, 插入之前建立的文本文件,如果操作正确的话,应该可以看到一个新的名为"数据包"的记录。即可
    3.数据库名前加"#"只需要把数据库文件前名加上#、然后修改数据库连接文件(如conn.asp)中的数据库地址。原理是下载的时候只能识别& nbsp;#号前名的部分,对于后面的自动去掉,比如你要下载:http://www.pcdigest.com/date/# 123.mdb(假设存在的话)。无论是 ie还是flashget等下到的都是http://www.test.com/dat e/index.htm(index.asp、 default.jsp等你在iis设置的首页文档)
    另外在数据库文件名中保留一些空格也起到类似作用,由于http协议对地址解析的特殊性,空格会被编码为"%",如http ://www.test.com/date/123 ;456.mdb,下载的时http: //www. test.com/date/123 %456.mdb.而我们的目录就根本没有123%456.mdb这个文件,所 以下载也是无效的这样的修改后,即使你暴露了数据库地址,一般情况下别人也是无法下载!
    4.加密数据库首先在选取"工具-> 安全->加密/解密数据库,选取数据库(如:employer.mdb),然后接确定,接 着会出现"数据库加密后另存为"的窗口,存为: employer1.mdb.接着employer.mdb就会被编码,然后存为 employer1.mdb……要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他 人使用别的工具来查看数据库文件的内容。
    接下来我们为数据库加密,首先以打开经过编码了的 e mployer1.mdb,在打开时,选择"独占"方式。然后选取功能表的"工具->安全->设置数据库密码",&  nbsp;接着输入密码即可。这样即使他人得到了employer1.mdb文件,没有密码他是无法看到 emplo yer1.mdb的。
    加密后要修改数据库连接页, 如:conn.open "driver={microsoft access driver&nb sp;(*.mdb)};uid=admin;pwd=数据库密码;dbq=数据库路径"这样修改后,数据库即使被人下载了,别人也无法打开(前提是你的数据库连接页中的密码没有被泄露)
    但值得注意的是,由于access数据库加密机制比较简单,即使设置了密码,解密也很容易。该数据库系统通过将用户输入的 密码与某一固定密钥进行" 异或"来形成一个加密串,并将其存储在*.mdb文件从地址"&h42"开始的区域内。所以一 个好的程序员可以轻松制作一个几十行的小程序就可以轻松地获得任何access数据库的密码。因此,只要数据库被下载,其信息安 全依然是个未知数。

本新闻共2


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons