前言:网络是没有绝对全安的,这是一句经典的名言,我也不用多说了!
今天主要为大家演示一下,怎么下载Access数据库和防止Access数据库被下载。
参考了部分文章,加入了自己的一些看法。
攻:
一、发挥你的想象力,修改数据库文件名,从理论上讲不一定能防止被下载。修改数据库名,其目的就是防止我们猜到数据库而被下载。但是万一我们猜到数据库名,就直接可以下载了。所以这不能保证100%不能被下载。猜解数据库的常用的办法就是写程序去猜解数据库名,判断WEB返回的是不是404错误,如果提交一个MDB文件,没有返回404错误,那就猜对了,就直接下载。当然这有一定的局限性,因为如果数据库名非常复杂。会产生大量的日志。管理员可能早发现了。并且还有猜解的时间会变得很长。
二:数据库名后缀改为ASA、ASP等,不一定能防止被下载。IIS在通过asp.dll处理.asp扩展名文件的时候,对以外的内容,不做任何处理就直接输出,但是MDB文件中如果没有之类的ASP标实符,我们直接在IE中输入URL返回在IE中的数据,就是MDB文件的数据,我们直接用FLASHGET之类的软件就可以下载,下载后改名这后就可以用了。我们直接在IE中输入: http://www.xxx.com/data/%23datapro.mdb 就可以下载了:
DB_String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Server.MapPath(DB_Path) Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open DB_String .... 数据库文件名也够复杂了,用程序破解,我想是没有人想去尝试的。 像这样的连接方式我们都可以直接取得他的数据库路径。由于这种方法危险性太大了,知道本方法的人很少。这里不敢公布。一旦公布不知道有多少网站的数据库会被下载。等以后看情况再说吧。所以这里我只为大家提供临时补丁。在Conn.Open DB_String上面加上一句话: ON ERROR RESUME NEXT 就可以解决这个问题
评论