篇首语:原来改mdb为asp就能防下载是鬼话。 引子:昨天和animator试验了一下,把data.mdb文件改名为data.asp文件后放在wwwroot目录里。然后 在IE中输入data.asp路径后,发现IE显示一片空白,右键->察看源文件,跳出记事本,将内容另存为.mdb文件 ,用ACCESS打开,发现需要密码,也就是说至少文件头被破坏。
此法须配合一些要进行一些设置,否则就会出现本文开头的那种情况 (1)二进制字段添加(此招我还没有炼成-_-+)。 (2)在这个文件中加入<%或%>,IIS就会按ASP语法来解析,然后就会报告500错误,自然不能下载了。可是 如果只是简单的在数据库的文本或者备注字段加入<%是没用的,因为ACCESS会对其中的内容进行处理,在数据库里他会以 < %的形式存在,无效!正确的方法是将<%存入OLE对象字段里,这样我们的目的就能达到了。&nbs p;
这几个方法中,只有第7和8个是统一性改的,一次修改配置后,整个站点的数据库都可以防止下载,其他几个就要分别修改数据库 名和连接文件,比较麻烦,不过对于虚拟主机的朋友也只能这样了! 其实第6个方法应该是第5个方法的扩展,可以实现特殊的功能,但对于不支持.net的主机或者怕设置麻烦的话,还是直接用第 5个方法了,而且默认情况下第6个方法,依然可以通过复制连接到同主机的论坛或留言本发表,然后就可以点击下载了(因为这样的引 用页是来自同主机的) 9.利用NTFS分区的文件权限设置(by percyboy)
a) D:/wwwroot/test/data/ 文件夹的给用户ASPNET 以如下权限: b) D:/wwwroot/test/data/db1.mdb 文件本身给用户ASPNET以如下权限:
(a) 如果 db1.mdb 是 Access 2000 创 建的数据库,出现如下错误: "/test"应用程序中的服务器错误。
"/test"应用程序中的服务器错误。
我们放开一些权限, b) D:/wwwroot/test/data/db1.mdb 文件本身给用户ASPNET以如下权限:
(a) 如果 db1.mdb 是 Access 2000 创 建的数据库,出现如下错误: "/test"应用程序中的服务器错误。
我们进一步放开权限, b) D:/wwwroot/test/data/db1.mdb 文件本身给用户ASPNET以如下权限:
(a) 如果 db1.mdb 是 Access 2000 创 建的数据库,我们会发现一个小问题:生成的 *.ldb 文件不会自己删除,访问后该文件依然存在,但这个 问题不会影响 ASP.NET 的正常运行。
大家学习 ASP 一开始就知道要保护 Access 数据库被直接下载,那时流行的做法是:将 Access 数据库比如 data.mdb 改名为 data.asp。这是一个很严重的“讹传”。 因为这种方案并不管用:比如 http://www.abc.com/data.asp ,我们直接在 IE 中敲地址得到是一个空白页面。如果查看此页的“源代码”,然后保存为 data.mdb,我们发现 Access 并不识别它。这就是这一讹传流传很久的表面现象。 其实,简单的写一行 HTML,类似下面的: <A href="http://www.abc.com/data.asp">点这里下载</A> 然后保存为 test.html 到你的桌面,然后打开它,右击该链接,选择“另存为...”,注意存盘时把扩展名改为 mdb,这时你得到的这个 data.mdb 就可以成功的在 Access 里面打开了。 现在,随着大家认识的提高,持有上面这样“天真”想法的人已经不多了。 今天,在搜索东西偶然看到一篇文章,因为其中引用了我的一篇旧文,所以发现了它: 防止ACCESS数据库被下载的9种方法 [整理版] (截至目前,这篇文章已经被浏览了150多次,引用高达70多次。另外google搜索的结果表明:它已经被转载至很多地方。) 在这篇文章中有一条方案是无效的,文章是这么写的: 3.数据库名前加“#” 空格方案就不必多说了,我在本机的试验证明,在浏览器地址栏中直接写 http://localhost/test data.mdb 没有任何问题很顺利就下载到了这个 test data.mdb,不知作者是什么解决方案。 希望这次“讹传”能够就此很快结束!不要给更多的人带来坏影响! |
防止ACCESS数据库被下载的9种方法
防止ACCESS数据库被下载的9种方法
[作者:佚名 转贴自:Internet 点击数:735 更新时间:2006-2-8 文章录入:onegreen]