服务器架站应用:教你打造安全mdb数据库
在众多学习中,文章也许不起眼,但是重要的下面我们就来讲解一下。excel2010视频教程
什么是mdb数据库呢?凡是有点制作网站经验的网络管理员都知道,目前使用“IIS+ASP+ACCESS”这套组合方式建立网站是最流行的,大多数中小型Internet网站都使用该“套餐”,但随之而来的安全问题也日益显著。其中最容易被攻击者利用的莫过于mdb数据库被非法下载了。
mdb数据库是没有安全防范的,只要入侵者猜测或者扫描到mdb数据库的路径后就可以使用下载工具轻松将其下载到本地硬盘,再结合暴力破解工具或一些超级破解工具可以轻松的查看里头的数据库文件内容,企业的隐私和员工的密码从此不在安全。难道我们就没有办法加强mdb数据库的安全吗?难道即便我们只有一点点数据资料也要麻烦sql server或者oracle吗?答案是否定的,本篇文章笔者将告诉大家打造安全的mdb数据库文件的独门秘诀。
一、危机起因:excel2010教程
一般情况下基于ASP构建的网站程序和论坛的数据库的扩展名默认为mdb,这是很危险的。只要猜测出了数据库文件的位置,然后在浏览器的地址栏里面输入它的URL,就可以轻易地下载文件。就算我们对数据库加上了密码并且里面管理员的密码也被MD5加密,被下载到本地以后也很容易被破解。毕竟目前MD5已经可以通过暴力来破解了。因此只要数据库被下载了,那数据库就没有丝毫安全性可言了。
二、常用的补救方法:
目前常用的数据库文件防止被非法下载的方法有以下几种。
(1)把数据库的名字进行修改,并且放到很深的目录下面。比如把数据库名修改为Sj6gf5.mdb,放到多级目录中,这样攻击者想简单地猜测数据库的位置就很困难了。当然这样做的弊端就是如果ASP代码文件泄漏,那无论隐藏多深都没有用了。
(2)把数据库的扩展名修改为ASP或者ASA等不影响数据查询的名字。但是有时候修改为ASP或者ASA以后仍然可以被下载,比如我们将其修改为ASP以后,直接在IE的地址栏里输入网络地址,虽然没有提示下载但是却在浏览器里出现了一**乱码。如果使用FlashGet或影音传送带等专业的下载工具就可以直接把数据库文件下载下来。不过这种方法有一定的盲目性,毕竟入侵者不能确保该文件就一定是MDB数据库文件修改扩展名的文件,但是对于那些有充足精力和时间的入侵者来说,可以将所有文件下载并全部修改扩展名来猜测。该方法的防范级别将大大降低。
well高级语言的出现使得计算机程序设计语言不再过度地依赖某种特定的机器或环境。这是因为高级语言在不同的平台上会被编译成不同的机器语言,而不是直接被机器执行。最早出现的编程语言之一FORTRAN的一个主要目标,就是实现平台独立。[1]
虽然大多数的语言可以既可被编译又可被解译,但大多数仅在一种情况下能够良好运行。在一些编程系统中,程序要经过几个阶段的编译,一般而言,后阶段的编译往往更接近机器语言。这种常用的使用技巧最早在1960年代末用于BCPL,编译程序先编译一个叫做“0代码”的转换程序(representation),然后再使用虚拟器转换到可以运行于机器上的真实代码。这种成功的技巧之后又用于Pascal和P-code,以及Smalltalk和二进制码,在很多时候,中间过渡的代码往往是解译,而不是编译的。[1]
如果所使用的翻译的机制是将所要翻译的程序代码作为一个整体翻译,并之后运行内部格式,那么这个翻译过程就被成为编译。因此,一个编译器是一个将人可阅读的程序文本(叫做源代码)作为输入的数据,然后输出可执行文件(object code)。所输出的可执行文件可以是机器语言,由计算机的中央处理器直接运行,或者是某种模拟器的二进制代码。[1]
如果程序代码是在运行时才即时翻译,那么这种翻译机制就被称作直译。经直译的程序运行速度往往比编译的程序慢,但往往更具灵活性,因为它们能够与执行环境互相作用。[1] excel2010
三、笔者的旁门左道:
在笔者的测试过程中就遇到了ASP和ASA文件也会被下载的问题,所以经过研究发现了以下的方法。
如果在给数据库的文件命名的时候,将数据库文件命名为“#admin.asa”则可以完全避免用IE下载,但是如果破坏者猜测到了数据库的路径,用FlashGet还是可以成功地下载下来,然后把下载后的文件改名为“admin.mdb”,则网站秘密就将暴露。所以我们需要找到一种FlashGet无法下载的方法,但是如何才能让他无法下载呢?大概是因为以前受到unicode漏洞攻击的缘故,网站在处理包含unicode码的链接的时候将会不予处理。所以我们可以利用unicode编码(比如可以利用“%3C ”代替“<”等),来达到我们的目的。而FlashGet在处理包含unicode码的链接的时候却“自作聪明”地把unicode编码做了对应的处理,比如自动把“%29”这一段unicode编码形式的字符转化成了“(”,所以你向FlashGet提交一个 http://127.0.0.1/xweb/data/%29xadminsxx.mdb的下载链接,它却解释成了http://127.0.0.1/xweb/data/(xadminsxx.mdb,看看我们上面的网址的地方和下面的重命名的地方是不同的,FlashGet把“%29xadminsxx.mdb”解释为了“(xadminsxx.mdb”,当我们单击“确定”按钮进行下载的时候,它就去寻找一个名为“(xadminsxx.mdb”的文件。也就是说FlashGet给我们引入了歧途,它当然找不到,所以提示失败了。
不过如果提示下载失败,攻击者肯定要想采取其他的攻击方法。由此我们可以采用另一个防范的方法,既然FlashGet去找那个名为“(xadminsxx.mdb”的文件了,我们可以给它准备一个,我们给它做一个仿真的数据库名为“(xadminsxx.mdb”,这样当入侵者想下载文件的时候的的确确下载了一个数据库回去,只不过这个数据库文件是虚假的或者是空的,在他们暗自窃喜的时候,实际上最终的胜利是属于我们的。
更多视频课程文章的课程,可到课课家官网查看。我在等你哟。