您现在的位置: 万盛学电脑网 >> 网络安全 >> 病毒防治 >> 正文

从数据库管理下手提升网站的安全

作者:佚名    责任编辑:admin    更新时间:2022-06-22

  数据库,网站运营的基础,网站生存的要素,不管是个人用户还是企业用户都非常依赖网站数据库的支持,然而很多别有用心的攻击者也同样非常“看重网站数据库。

  对于个人网站来说,受到建站条件的制约,Access数据库成了广大个人网站站长的首选。然而,Access数据库本身存在很多安全隐患,攻击者一旦找到数据库文件的存储路径和文件名,后缀名为“.mdb的Access数据库文件就会被下载,网站中的许多重要信息会被一览无余,非常可怕。当然,大家采用了各种措施来加强Access数据库文件的安全,但真的有效吗?

  存在漏洞的保护措施

  流传最为广泛的一种Access数据库文件保护措施,是将Access数据库文件的后缀名由“.mdb改为“.asp,接着再修改数据库连接文件(如conn.asp)中的数据库地址内容,这样一来即使别人知道数据库文件的文件名和存储位置,也无法进行下载。

  这是网上最流行的一种增强Access数据库安全的方法,而且还有强大的“理论基础。

  因为“.mdb文件不会被IIS服务器处理,而是直接将内容输出到Web浏览器,而“.asp文件则要经过IIS服务器处理,Web浏览器显示的是处理结果,并不是ASP文件的内容。

  但大家忽略了一个很重要的问题,这就是IIS服务器到底处理了ASP文档中的哪些内容。这里笔者提醒大家,只有ASP文件中“标志符间的内容才会被IIS服务器处理,而其他内容则直接输出到用户的Web浏览器。你的数据库文件中包含这些特殊标志符吗?即使有,Access也可能会对文档中的“标志符进行特殊处理,使之无效。因此后缀为“.asp的数据库文件同样是不安全的,还是会被恶意下载。

  面对蛊惑人心的理论,以及众人的附和,笔者也开始相信此方法的有效性。但事实胜于雄辩,一次无意间的试验,让笔者彻底揭穿了这个谣言。

  笔者首先将一个名为“cpcw.mdb的数据库文件改名为“cpcw.asp,然后上传到网站服务器中。运行FlashGet,进入“添加新的下载任务对话框,在“网址栏中输入“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数据源,并在其中指定“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数据库文件才会更安全。

  如何更好的达到防范黑客攻击,本人提一下个人意见!第一,免费程序不要真的就免费用,既然你可以共享原码,那么攻击者一样可以分析代码。如果在细节上注意防范,那样你站点的安全性就大大的提高了。即使出现了SQL Injection这样的漏洞,攻击者也不可能马上拿下你的站点。 由于ASP的方便易用,越来越多的网站后台程序都使用ASP脚本语言。但是, 由于ASP本身存在一些安全漏洞,稍不小心就会给黑客提供可乘之机。事实上,安全不仅是网管的事,编程人员也必须在某些安全细节上注意,养成良好的安全习惯,否则会给自己的网站带来巨大的安全隐患。目前,大多数网站上的ASP程序有这样那样的安全漏洞,但如果编写程序的时候注意一点的话,还是可以避免的。

  1、用户名与口令被破解

  攻击原理:用户名与口令,往往是黑客们最感兴趣的东西,如果被通过某种方式看到源代码,后果是严重的。

  防范技巧:涉及用户名与口令的程序最好封装在服务器端,尽量少在ASP文件里出现,涉及与数据库连接的用户名与口令应给予最小的权限。出现次数多的用户名与口令可以写在一个位置比较隐蔽的包含文件中。如果涉及与数据库连接,在理想状态下只给它以执行存储过程的权限,千万不要直接给予该用户修改、插入、删除记录的权限。

  2、验证被绕过

  攻击原理:现在需要经过验证的ASP程序大多是在页面头部加一个判断语句,但这还不够,有可能被黑客绕过验证直接进入。

  防范技巧:需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。

  3、inc文件泄露问题

  攻击原理:当存在ASP的主页正在制作且没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象。如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中查看到数据库地点和结构的细节,并以此揭示完整的源代码。

  防范技巧:程序员应该在网页发布前对它进行彻底的调试;安全专家则需要加固ASP文件以便外部的用户不能看到它们。首先对.inc文件内容进行加密,其次也可以使用.asp文件代替.inc文件使用户无法从浏览器直接观看文件的源代码。inc文件的文件名不要使用系统默认的或者有特殊含义容易被用户猜测到的名称,尽量使用无规则的英文字母。

  4、自动备份被下载

  攻击原理:在有些编辑ASP程序的工具中,当创建或者修改一个ASP文件时,编辑器自动创建一个备份文件,比如:UltraEdit就会备份一个.bak文件,如你创建或