【原创】五种防止ACCESS被下载的方法 ASP网站安全完全解析
作者:shmshz 日期:2009-08-20
前言:测试一下常规方法 把 data.mdb文件改名为data.asp文件后放在wwwroot目录里。然后 在IE中输入data.asp路径后,发现IE显示一片空白,将另存为.mdb文件 ,用ACCESS打开,提示格式不正确,而且文件大小不一,也就是下载不到数据库。
然后用Flashget下载data.asp文件,并另存为data.mdb文件,发现可以用ACCESS打开!!!看看数据库都在。通常人们说的把数据库后缀改为asp就能防下载的方法,是错的!如果你只是把date.mdb改为date.asp那么你的数据库随时都有可以被盗取。直到现在还有网站编程以及程序销售人员仍然推荐这种方法。
这里总结一下几种比较安全的方法:
一、将数据库date.mdb重用名为尽可能复杂的名字可以带上符号英文句号,后缀改为asp或者asa,并在名字前加个英文井号“#”中间加上空格。例如数据库名改为#sgpqouzmf cxh.kjf.asp (注意有一个空格)。
购买如果的虚拟主机有上级目录,如网站目录为/wwwroot ,那么把数据库放在/wwwroot以外的目录里,目录或日志目录,如/db 或 /database里面,因为这些目录是无法用http方式浏览的。除非黑客知道你的FTP。
主要原理:带#的地址只#后面的内容被自动忽略,而文件名中空格会自动识别为%20,这两种方法在有的主机是不能实现的,所以把数据库放到上级目录最为安全,但要保证这个目录有读写权限。
本人最新测试结果:
mdb数据库文件在前面直接加#号照样可以下载,只需将#换做%23即可
而在文件名里面加上%20(因为%20为空格)却可以起到一定的防护作用如文件名取做
#%2026b6fda2bc8909542607.mdb
那么在网际快车里面输入http://www.54bq.com/data/%23%2026b6fda2bc8909542607.mdb
则下载得到的文件不完整,但这种方法同样不安全
二、如果您的主机不支mdb格式的数据库,那么可以直接把数据库改名放到上级目录中。如果虚拟主机没有上级目录可以试试第三、四种方法;
三、原理:asp文件中加入<%或%>,IIS就会按ASP语法来解析,然后就会报告500错误,自然不能下载了。
如果只是简单的在数据库的文本或者备注字段加入<%是没用的,因为ACCESS会对其中的内容进行处理,在数据库里他会认为这是两个符号。其实我们还可以将 <%存入OLE对象字段里,这样我们的目的就能达到了。
方法:首先,用记事本新建一个文本文档,写入内容为 <% 保存(注意保持的编码格式要与网站的编码一致,不然出现乱码仍然不能识别),随便起个名字存档。接着,用Access打开您的数据库文件,新建一个表,随便起个名字,在表中添加一个OLE对象的字段,然后添加一个记录, 插入之前建立的文本文件,如果操作正确的话,应该可以看到一个新的名为"数据包"的记录。
四、对数据库进行加密,用ACCESS使用独占方式打开数据库文件,然后找到 工具-安全-设置数据库密码。然后写个数据库读取文件内容。
复制内容到剪贴板
程序代码
程序代码conn.open "driver={microsoft access driver&nb sp;(*.mdb)};
<%
response.codepage=65001
response.charset="utf-8"
set conn = server.CreateObject("adodb.connection")
on error resume next
conn.Open "driver={microsoft access driver (*.mdb)};
uid=admin;
pwd=刚设置的数据库密码;
dbq=" & server.MapPath("数据库的相对路径")
%>
这样即使被人下载了数据库文件,他也不能直接读取里面的内容。不过一旦数据库被下载你破解不了不一定其他人也破解不了,不行暴力破解呗。最好还是配合以上几种方法一起使用。
五、如果你有主机IIS控制权修改IIS设置即可整站防止MDB文件下载,如自定义MIME类型
[本日志由 shmshz 于 2010-03-03 10:28 AM 编辑]
文章来自: 本站原创
Tags: asp ACCESS 数据库 安装 下载
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
上一篇
下一篇
