当前位置:首页 > 服务器类 > 安全防护 > > 防止ACCESS数据库被下载的方法后续

防止ACCESS数据库被下载的方法后续

点击次数:26 次 发布日期:2008-11-29 17:49:48 作者:源代码网


源代码网供稿.

源代码网推荐

自从发布了防止ACCESS数据库被下载的9种方法后(声明:文章可不是我-古典辣M°写的),很多朋友对作者所想到的思路表示称赞,但是也对部分方法表示怀疑.

尤其是第三点, 原文如下:

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这个文件,所 以下载也是无效的这样的修改后,即使你暴露了数据库地址,一般情况下别人也是无法下载! 

一位叫破宝(percyboy)的朋友在我的blog上留言, 他是这样说的:

纠错 [回复]

上述第三种方法无效:

(a)攻击者将 # 换成 %23 就可以下载;
(b)空格方案也是如此的无效。

请传播者注意不要继续讹传了!


另外建议参考我的一篇文章:

http://blog.joycode.com/percyboy/articles/7470.aspx

以下是他的文章:

ASP.NET 中防止 Access 数据库被下载的几种选择

在 ASP 中防止 Access 数据库被下载的"常用"方法大多是:

  1. [点这里] 下载到一个 Access 文件,其中包含一个特殊的表,你把它复制(包括数据)到你要保护的 Access 中;

  2. 然后把你的 Access 重命名为 *.asp。

经过这样的步骤,这个 Access 即使放在 Web 目录中也不会被下载。

注意:正如_blank>思归(saucer)_blank>说过的那样,这并不是最好的解决方案;如果有可能的话,把 Access 文件放在非 Web 目录中或者合理的设置 NTFS/IIS 权限,会更好一些。
但并不是所有情形中都可以这么解决,因为可能有时候你并没有直接操纵服务器的资格,那么也只能这么 BT 地解决了。

虽然在 ASP.NET 中仍然可以采用上面的方法去做(如果你的服务器同时支持ASP 的话),但显然会有更多其它的方案,如下的几种可以供你参考:

  1. 将你的 Access 重命名 *.asax:因为 ASP.NET 的处理机制中,默认情况下,对这样的请求是直接拒绝的,并不会有上面思归提到的解析过程耗费资源等问题;
    按照这个思路,其实还可以把 Access 重命名为 *.config,*.vb, *.cs 等等。

  2. 将你的 Access 放在你的应用程序根下 bin 目录(也就是你放置 DLL 文件的那个目录)中:已经发现,IIS 默认被配置为拒绝直接访问 bin 目录中的文件,用以保护对 DLL 的请求,事实上也同时保护了放在 bin 目录中其他文件。

另外还可以参考下面这个文章:

文件下载的权限控制(asp.net)     选择自 maximon 的 Blog

笔者做一个报表展示的网站,报表使用excel形式存放在服务器,希望登录的人或者有权限的人才能下载excel报表。但是文件下载的路径无法隐藏,所以页面控制根本没用。近日在研究iis的时候,突然就豁然开朗了。

首先编辑或者修改网站的web.config,加入或者修改红色区域

           

接着编写login.aspx

对于登录成功者加入

FormsAuthentication.SetAuthCookie(uid,false);
     FormsAuthentication.RedirectFromLoginPage(uid,false);
打开iis,找到你的网站,点右键,选属性,-》主目录-》配置

然后在"映射"中选添加,

添加如上图。

好了,大功告成,现在再访问主站下的一个xls文档http://localhost/sms/1.xls,看到什么?

呵呵,没错,需要您登录了。当你输入登录信息并且登录了您才能下载这个文件!

对,就这么简单,如果加上role,可以进行更复杂的控制。

欢迎交流(maximon@sina.com 无锡国税瞿惠春) 

作者Blog:_blank>http://blog.csdn.net/maximon/

源代码网整理以下

网友评论 (0)
会员中心
服务器类
本站推荐
服务器类之精华