数据库 , 网站 运营的基础, 网站 生存的要素,不管是 个人 用户还是企业用户都非常依赖 网站 数据库 的支持,然而很多别有用心的攻击者也同样非常“看重” 网站 数据库 。 对于 个人 网站 来说,受到建站条件的制约,Access 数据库 成了广大 个人 网站 站
数据库,
网站运营的基础,
网站生存的要素,不管是
个人用户还是企业用户都非常依赖
网站数据库的支持,然而很多别有用心的攻击者也同样非常“看重”
网站数据库。
对于
个人网站来说,受到建站条件的制约,Access
数据库成了广大
个人网站站长的首选。然而,Access
数据库本身存在很多
安全隐患,攻击者一旦找到
数据库文件的存储路径和文件名,后缀名为“.mdb”的Access
数据库文件就会被下载,
网站中的许多重要信息会被一览无余,非常可怕。当然,大家采用了各种措施来加强Access
数据库文件的
安全,但真的有效吗?
存在漏洞的保护措施流传最为广泛的一种Access
数据库文件保护措施,是将Access
数据库文件的后缀名由“.mdb”改为“.asp”,接着再修改
数据库连接文件(如conn.asp)中的
数据库地址内容,这样一来即使别人知道
数据库文件的文件名和存储位置,也无法进行下载。
1.貌似安全的原理这是网上最流行的一种增强Access
数据库安全的方法,而且还有强大的“理论基础”。
因为“.mdb”文件不会被IIS服务器处理,而是直接将内容输出到Web浏览器,而“.asp”文件则要经过IIS服务器处理,Web浏览器显示的是处理结果,并不是ASP文件的内容。
但大家忽略了一个很重要的问题,这就是IIS服务器到底处理了ASP文档中的哪些内容。这里笔者提醒大家,只有ASP文件中“”标志符间的内容才会被IIS服务器处理,而其他内容则直接输出到用户的Web浏览器。你的
数据库文件中包含这些特殊标志符吗?即使有,Access也可能会对文档中的“”标志符进行特殊处理,使之无效。因此后缀为“.asp”的
数据库文件同样是不
安全的,还是会被恶意下载。
2.披着“安全外衣”的漏洞面对蛊惑人心的理论,以及众人的附和,笔者也
开始相信此方法的有效性。但事实胜于雄辩,一次无意间的试验,让笔者彻底揭穿了这个谣言。
笔者首先将一个名为“cpcw.mdb”的
数据库文件改名为“cpcw.asp”,然后上传到
网站服务器中。
运行FlashGet(图1),进入“添加新的下载任务”对话框,在“网址”栏中输入“cpcw.asp”文件的存储路径,然后在“重命名”栏中输入“cpcw.mdb”。进行下载后,笔者发现可以很顺利地打开“cpcw.mdb”,而且它所存储的信息也被一览无余。这就充分说明了单纯地将
数据库文件名的后缀“.mdb”改为“.asp”,还是存在
安全隐患。
没有最“
安全”,只有更“
安全”
任何事情都不是绝对的,因此增强Access
数据库文件的
安全也只是相对的。毕竟Access只能用于小型
数据库的解决方案,它存在很多先天不足,特别是在
安全方面。
我们所采用的各种方法,也只是相对来说增强了Access
数据库文件的
安全,并不能实现绝对的
安全,毕竟先天不足的问题是无法解决的。下面笔者为大家介绍一些方法,虽然不能完全防止别人下载Access
数据库文件,但只要你善用它们,Access
数据库文件就会更
安全。
方法一:数据库文件名应复杂要下载Access
数据库文件,首先必须知道该
数据库文件的存储路径和文件名。如果你将原本非常简单的
数据库文件名修改得更加复杂,这样那些“不怀好意”者就要花费更多的时间去猜测
数据库文件名,无形中增强了Access
数据库的
安全性。
很多ASP程序为方便用户使用,它的
数据库文件通常都被命名为“data.mdb”,这大大方便了有经验的攻击者。如果我们将
数据库文件名修改得复杂一些,他人就不易猜到,如将“data.mdb”修改为“1rtj0ma27xi.mdb”,然后修改
数据库连接文件中的相应信息。这样Access
数据库就相对
安全一些。此方法适合于那些租用Web空间的用户使用。
不足之处:一旦查看到
数据库连接文件(如conn.asp)中的内容,再复杂的文件名也无济于事。
方法二:利用ODBC数据源很多
网站Web程序,将Access
数据库文件的存储路径和文件名存放在
数据库连接文件中。一旦这些连接文件中的内容外泄,那么不管
数据库文件名多么复杂,都会暴露出踪迹。
这时就可以使用ODBC数据源方法,即使连接文件的内容外泄,他人也只能知道
网站程序所使用的ODBC数据源名称,而
数据库文件的存储路径和文件名却无法找到。
手工修改
数据库连接文件(如conn.asp)中的内容,以及创建ODBC数据源。下面以笔者的论坛程序为例,首先将conn.asp文档中的
DBPath = Server.MapPath("./data/1rtj0ma27xi.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
修改为:conn.open "rtjmaxi",其中“rtjmaxi”是指ODBC数据源名称。
接着在IIS服务器中新建名为“rtjmaxi”的ODBC数据源(图2),并在其中指定“1rtj0ma27xi.mdb”
数据库文件的位置即可,最后点击“确定”按钮完成配置。
不足之处:此方法不适合于租用Web空间的用户使用,要想使用ODBC数据源方法,必须要有
管理和维护IIS服务器的权限。
方法三:改变存储位置一般情况下,Access
数据库文件存放在相应的Web目录中,很多黑客就是利用这种规律来查找并下载
数据库文件。
因此可以采用改变
数据库文件存储位置的方法,将
数据库文件存放在Web目录以外的某个文件夹中,让黑客难以猜测存储位置。
接着修改好
数据库连接文件(如conn.asp)中的
数据库文件相应信息,这样Access
数据库文件就
安全多了。即使攻击者通过连接文件找到
数据库文件的存储路径,由于
数据库文件存放在Web目录以外的地方,攻击者就无法通过HTTP方式下载
数据库文件。
例如,IIS
网站的Web目录位于“D:\wwwroot”下,在该Web目录下的“DATA”文件夹中存放着“1rtj0ma27xi.mdb”,现在笔者将该
数据库文件转移到Web目录以外的“D:\CPCW”文件夹下。然后修改
数据库连接文件,将“DBPath=Server.MapPath("./data/1rtj0ma27xi.mdb")”修改为“DBPath=Server.MapPath("../cpcw/1rtj0ma27xi.mdb")”,这样Access
数据库文件就
安全多了。虽然
数据库文件没有存放在Web目录中,但并不影响ASP程序访问
数据库。
不足之处:此方法不适合于租用Web空间的用户使用,因为将Access
数据库文件移至Web目录之外,一般需要很大的权限。
以上方法,在不同程度上增强了Access
数据库文件的
安全性,但大家不能将它们当成“仙丹妙药”,毕竟网络环境是复杂的,黑客的破坏手段也在不断增强,大家可以根据自己的需要,选择其中的多种方法配合使用,效果才理想,Access
数据库文件才会更
安全。