作为ASP程序使用最多的数据库类型,ACC数据库也有很多不令人满意的地方,例如他的调用效率和数据安全问题。ACC数据库的本质是微软开发的Office系列软件之一的数据管理系统,既然是桌面办公级,那么就有它的局限性,ACC数据库在大小和并发用户的支持上十分有限,一旦数据库文件过大,并发用户过多就会导致严重的性能问题。(ACC数据库具体的优缺点可以看这篇文章)
ACC数据库缺点不止是这些,安全性不够才是ACC最大的弊病。黑客在攻击此类ASP程序的网站时,首先就是从数据库上下手,由于IIS的报错提示容易暴露数据库的地址,黑客很容易就会获取到数据库。怎样防止数据库被恶意下载,是站长首当其冲,必须高度重视的问题。
今天,我们来谈谈防止ACC数据库被恶意下载的几个简单有效的方法。
一,最简单的办法,文件名混淆复杂加密
将数据库放在尽可能深的文件目录里,并将数据库文件名及.MDB后缀改成与该目录文件相似的名称。以避免有空间权限和FTP被他人登陆后被下载的问题。
缺点,数据库一般较大,很容易区分;IIS的报错提示会暴露数据库的真实地址。
即使是放在默认目录,也要尽可能的将数据库文件名设置的长且复杂一点,最好中英文,符号混合设置,以防被一些黑客工具枚举。
二,数据库名称前或名称后加"#"号
1、数据库文件名之前加上“#”号后,由于浏览器或下载工具只能识别“#”符号前的部分地址,当下载例如http://www.huceo.com/DATA/#123456.mdb时,得到的将是http://www.huceo.com/DATA/index.html首页文件,如果没有该文件,则会出现错误提示。
2、数据库名称里加上#号后,从URL上请求时#只是一个分隔字符,就算知道了数据库名,用浏览器下载时,WEB服务器会忽视#号后面的字符。如:123#456.mdb,当用工具下载时,WEB服务器会认为请求的是123.mdb而不是123#456.mdb,从而就会出现无法找到文件的错误提示。
缺点,由于URL中对于特殊的字符有一个特殊的表示方式,,#的特殊表示就是%23,如果是123%23456.mdb则该文件就会被下载。另外,一些下载工具如迅雷等可以直接下载这种文件。
三,将数据库放在WEB目录以外的目录里面
现在的大多数虚拟主机,空间会有默认的四个目录,例如:wwwroot,databases,logfiles,others。在http环境下,只有wwwroot是开放目录,一般用来存放可以被外部访问程序文件;databases一般就是ACC数据库专用目录;logfiles是系统日志目录;others用来放自己不对外开放的个人文件目录。
只要将数据库移到databases目录,一般就非常安全了,因为在http环境下,databases是完全封闭的目录,只有FTP工具才能找到这个目录。黑客除非直接夺得主机的控制权才能找到到你的数据库。
将数据库从/WEB/123456.MDB移到databases目录后需要更改数据库连接文件里面的数据库连接地址,具体视程序而视,例如Zblog则是这个文件:c_custom.asp,请把数据库连接地址改成这样“../databases/123456.mdb”。如果更改了数据库文件名或后缀名也需要更改成相应的地址。
以上介绍的只是一些简单容易操作的防护方法,稍复杂点的还有把数据名改成ASP,asa的,把数据库加密的,还有通过IIS设置给数据库名添加扩展映射的方法。(更多ACC数据库的安全防护方法和对策)
综上所述,第三个办法:将数据库放在WEB目录以外,数据库专用目录里面是最简单,方便,有效的。
|