邀朋友种豆,一起分享吧
喜欢购买正品行货?那就去品牌街

防止网站Access数据库被下载的方法搜集

来自:种豆 时间:2017-12-29 阅读:680次 原文链接

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

  对于个人网站来说,受到建站条件的制约,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/1rtj0ma27xkzzz.mdb")
  conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& DBPath可见,即使数据库名字起得再怪异,隐藏的目录再深,ASP源代码失密后,也很容易被下载下来。如果使用ODBC数据源,就不 会存在这样的问题了:  conn.open "ODBC-DSN名" ,不过这样是比较烦的,目录移动的话又要重新设置数据源了! 

防止 Access 数据库被下载的手段(修正版)

前提:服务器为 IIS,并且支持运行 VBScript 和 CGI 。

  网络上使用数据库来发布、收集以及管理信息是经常使用的方法,而现在大多数服务器使用 Microsoft 的 IIS ,大部分个人或者公司的用户使用直接指出相对路径地址的 Access 数据库,这种数据库的地址一旦被发现,就毫无安全可言,因为它可以直接被下载。

  有一种方法是由网络管理员给你设置一个 dsn,但这不能解决数据库可能被下载的问题;很多人说,把数据库文件的扩展名由 .mdb 改为 .asp 或者 .dll 的扩展名,前者不管用,.asp 下载后改扩展名为 .mdb 依然能够打开使用,而改为 .dll 太麻烦。

  现在提供一个十分简单有效的方法,IIS 一般都允许执行 cgi,把 Access 数据库的扩展名改为 .cgi 就行了,这样服务器只会返回一个执行错误,而文件实际不会被下载。

  由于 Access 数据库改为 .asp 以后,由于其中没有 <% 与 %> 标识符,所以其中并不执行任何代码段,与一个纯 Html 文件无异,因而可以直接下载打开。
  .cgi 是纯执行,所以,只要 iis 允许运行 .cgi ,那么这个 .cgi 就只会报错,源代码不会被下载(除非你让 IIS 报告出错程序 或 cgi 的源代码,那我没办法)改名后的文件就无法下载。

  这样也不用和网管联系设 DSN,也方便自己的数据库更新。

 

 
关于种豆 ┊ 联系我们 ┊ 免责声明 ┊ 发帖须知 ┊ 请提意见 ┊ 站点地图
本站为个人爱好兴趣分享网站,不代表本人观点,如有侵权请联系QQ3371650278进行处理
sowsoy.com 版权所有 Copyright©2010-2020 浙ICP备10212932号
Email:sowsoy#hotmail.com