知识大全 改mdb为asp就能防Access数据库下载是鬼话
Posted 数据库
篇首语:人生何适不艰难,赖是胸中万斛宽。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 改mdb为asp就能防Access数据库下载是鬼话相关的知识,希望对你有一定的参考价值。
改mdb为asp就能防Access数据库下载是鬼话 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
许多程序员在开发的时候都认为改了mdb后缀为asp就能防下载的概念 是错的!后台数据库被下载对于一个 asp+a ccess的网站来说无疑是一场惨绝人寰的灾难 今天找了各方的文章 归纳一下有以下 种办法防止数据库被下载发挥你的想象力 修改数据库文件名不用说 这是最最偷懒的方法 但是若攻击者通过第三方途径获得了数据库的路径) 就玩完了 比如说攻击者本来只能拿到list权 结果意外看到了数据库路径 就可以冠冕堂皇地把数据库下载回去研究了 另外 数据文件通常大小都比较大 起再隐蔽的文件名都瞒 不了人 故保密性为最低 数据库名后缀改为ASA ASP等 此法须配合一些要进行一些设置 否则就会出现本文开头的那种情况 ( )二进制字段添加 ( ) 在这个文件中加入<%或%> IIS就会按ASP语法来解析 然后就会报告 错误 自然不能下载了 可是 如果只是简单的在数据库的文本或者备注字段加入<%是没用的 因为ACCESS会对其中的内容进行处理 在数据库里他会以 < %的形式存在 无效!正确的方法是将 <%存入OLE对象字段里 这样我们的目的就能达到了 操作方法 首先 用notepad新建一个内容为 <% 的 文本文件 随便起个名字存档 接着 用Access打开您的数据库文件 新建一个表 随便起个名字 在表中添加一个OLE对象的字段 然后添加一个记录 插入之前建立的文本文件 如果操作正确的话 应该可以看到一个新的名为 数据包 的记录 数据库名前加 # 只需要把数据库文件前名加上# 然后修改数据库连接文件(如conn asp)中的数据库地址 原理是下载的时候只能识别& nbsp #号前名的部分 对于后面的自动去掉 比如你要下载 // pcdigest /date/# mdb(假设存在的话) 无论是 IE还是FLASHGET等下到的都是// test /dat e/index (index asp default jsp等你在IIS设置的首页文档) 另外在数据库文件名中保留一些空格也起到类似作用 由于HTTP协议对地址解析的特殊性 空格会被编码为 % 如 :// test /date/ mdb 下载的时 // test /date/ % mdb 而我们的目录就根本没有 % mdb这个文件 所 以下载也是无效的这样的修改后 即使你暴露了数据库地址 一般情况下别人也是无法下载! 加密数据库首先在选取 工具 > 安全 >加密/解密数据库 选取数据库(如 employer mdb) 然后接确定 接 著会出现 数据库加密后另存为的窗口 存为 employer mdb 接着employer mdb就会被编码 然后存为 employer mdb……要注意的是 以上的动作并不是对数据库设置密码 而只是对数据库文件加以编码 目的是为了防止他 人使用别的工具来查看数据库文件的内容 接下来我们为数据库加密 首先以打开经过编码了的 e mployer mdb 在打开时 选择 独占 方式 然后选取功能表的 工具 >安全 >设置数据库密码 接着输入密码即可 这样即使他人得到了employer mdb文件 没有密码他是无法看到 emplo yer mdb 的 加密后要修改数据库连接页 如 conn open driver= microsoft access driver&nb sp (* mdb) uid=admin pwd=数据库密码 dbq=数据库路径 这样修改后 数据库即使被人下载了 别人也无法打开(前提是你的数据库连接页中的密码没有被泄露) 但值得注意的是 由于 Access数据库的加密机制比较简单 即使设置了密码 解密也很容易 该数据库系统通过将用户输入的 密码与某一固定密钥进行 异或 来形成一个加密串 并将其存储在* mdb文件从地址 &H 开始的区域内 所以一 个好的程序员可以轻松制作一个几十行的小程序就可以轻松地获得任何 Access数据库的密码 因此 只要数据库被下载 其信息安 全依然是个未知数 数据库放在WEB目录外或将数据库连接文件放到其他虚拟目录下如你的WEB目录是e \\webroot 可以把数据库放到e \\data这个文件夹里 在 e \\webroot里的数据库 连接页中修改数据库连接地址为 ……/data/数据库名 的形式 这样数据库可以正常调用 但是无法下载的 因 为它不在WEB目录里!这个方法一般也不适合购买虚拟空间的用户 使用ODBC数据源 在ASP等程序设计中 如果有条件 应尽量使用ODBC数据源 不要把数据库名写在程序中 否则 数据库名将随ASP源代码 的失密而一同失密 例如 DBPath = Server MapPath( ……/ / abc/asfadf mdb ) conn open driver =Microsoft Access Driver&nb sp (* mdb) dbq= & DBPath可见 即使数据库名字起得再怪异 隐藏的目录再深 ASP源代码失密后 也很容易被下载下来 如果使用ODBC数据源 就不 会存在这样的问题了 conn open ODBC DSN名 不过这样是比较烦的 目 录移动的话又要重新设置数据源了 更方便的方法请看第 法! 添加数据库名的如MDB的扩展映射这个方法就是通过修改IIS设置来实现 适合有IIS控制权的朋友 不适合购买虚拟主机用户(除非管理员已经设置了) 这个 方法我认为是目前最好的 只要修改一处 整个站点的数据库都可以防止被下载 无须修改代码即使暴露目标地址也可以防止下载 &n bsp 我们在IIS属性 ——主目录——配置——映射——应用程序扩展那里添加 mdb文件的应用解析 注意这里的选择的D LL(或EXE等)似乎也不是任意的 选择不当 这个MDB文件还是可以被下载的 注意最好不要选择选 择asp dll等 你可以自己多测试下这样修改后下载数据库如 // test /data/dvbbs mdb 就出现( 或 等错误) 使用 net的优越性动网的木鸟就写过一个防非法下载文件的 WBAL 防盗链工具 具体可以登陆// seek /WBAL/ 不过 那个只实现了防止非本地下载的 没有起到真正的防下载数据库的功能 不过这个方法已经跟 法差 不多可以通过修改 NET文件 实现本地也不能下载! 这几个方法中 只有第 和 个是统一性改的 一次修改配置后 整个站点的数据库都可以防止下载 其他几个就要分别修改数据库 名和连接文件 比较麻烦 不过对于虚拟主机的朋友也只能这样了! 其实第 个方法应该是第 个方法的扩展 可以实现特殊的功能 但对于不支持 net的主机或者怕设置麻烦的话 还是直接用第 个方法了 而且默认情况下第 个方法 依然可以通过复制连接到同主机的论坛或留言本发表 然后就可以点击下载了(因为这样的引 用页是来自同主机的)
cha138/Article/program/SQL/201311/16414相关参考
<% Dim DBRSSQL DB = "DBasp" ’这里改成你的数据库后缀一定要是asp&n
asp.net连接Access数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!<%@Im
ASP.NET的ACCESS数据库操作类 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! //网上
知识大全 Windows200364位下ASP无法连接Access数据库
Windows200364位下ASP无法连接Access数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
ASP.NET连接ACCESS数据库的简单方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一段非
连接access数据库教程二种方法这里提供了access数据库的dsnless连接方法与accessoledb连接方法哦dimdb="dbmdb";access数据库的dsnless连接方法:
access数据库教程连接代码 dimconnconnstrtimesdbrs timesdb="/cnnet/
asp教程+access数据保存插入代码ifrequestQueryString("ag") then setconn=servercreateobject("adodbcon
Setrs=nothing Setconobject=ServerCreateObject("ADODBConnection") 
asp教程+access按年按月统计数据/*字段d_id(自动编号)d_je(货币型)d_sxrq(日期型) 表数据如下 d_id d_je d_s