浅谈 Access 数据库防下载安全

以前写过一篇关于 Access 安全的文章,但总觉得有不足,经过测试研究后,重新写出来,欢迎大家进行讨论。

首先我们知道常见的傻瓜式入侵 ASP 网站下载默认数据库是其中一个方法,挖掘机挖掘大量的网站,寻找网站中存在的默认数据库。数据库作为一个动态网站最重要的核心,里面记录了大量信息。作为一名入侵者,拿到数据库就等于拿到网站的权限了,轻则泄露数据,重则影响网站乃至整个服务器的安全。

ASP+Access 的网站结构是网上最流行的架构方式之一,几乎的站长使用的都是别人的网站系统,很多人都忽略了修改默认数据库,从而导致入侵者有入侵的机会。

在入侵 ASP+Access 网站系统中,直接下载数据库、使用一句话木马是最常见的方法,其中直接下载数据库包括了通过暴库和直接下载默认数据库来得到数据库路径,插入一句话木马是针对得到数据库地址,并且是 ASP 或者 ASA 为扩展名的数据库。

所以网上流传的修改数据库扩展名为 ASP 和 ASA 不是一个最安全的方法,反而被入侵者知道路径后,是一个致命的错。而将数据库名加上 # 也并非安全的做法。

通过上面总结后我们知道,只要让入侵者无法下载数据库,无法插入一句话木马,即使他们知道路径也无妨。

经过测试,我发现,只要将数据库的扩展名删除,就可以做到了。大家都知道 IIS 里有个默认文档,当用户浏览网站主页或者网站目录时,首先浏览的就是这默认文档,一般为 index.htm、index.asp 等等。如果删除了扩展名,那么直接提交数据库地址时,就会被误认为浏览目录,但这个目录并非存在,所以404错误,返回找不到该页。举例:假设我们取数据库名为"luanx"(没有扩展名),然后通过访问地址 http://**/luanx ,假设默认文档最前面的一个是 index.htm,在访问时会被解析为 http://**/luanx/index.htm ,因为此目录不存在而找不到(测试环境是 Windows XP/2003,IIS 5.0/6.0,FAT32/NTFS 的硬盘)。此方法只用于 Windows 2003 的服务器,XP 下还是能下载,不过没几个人用 XP 架设服务器的。

本文有不足之处欢迎讨论。