欢迎来到天天文库
浏览记录
ID:25839195
大小:54.50 KB
页数:5页
时间:2018-11-23
《浅析网站数据库的安全防范及对策论文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、浅析网站数据库的安全防范及对策论文.freeldb数据库文件的安全防范对策。一、危机起因(一)Access数据库的安全问题1.Access数据库的存储隐患在ASP+Access应用系统中,如果获得或者猜测到Access数据库的存储路径和数据库名,则该数据库就可以被到本地。2.Access数据库的解密隐患由于Access数据库的加密机制非常简单,所以即使数据库设置了密码.freeldb文件中从地址“&H42”开始的区域内。由于异或操作的特点是“经过两次异或就恢复原值”,因此,用这一密钥与*.mdb文件中的加密串进行第二次异或操作,就可以轻松地
2、得到Access数据库的密码。基于这种原理,很容易编制出解密程序或者在互联网上到破解工具,数据库文件的内容,企业的资料、隐私和员工的密码从此不在安全。由此可见,无论是否设置了数据库密码,只要数据库被,其信息就没有任何安全性可言了。(二)ASP带来的安全问题1.ASP程序源代码的隐患由于ASP程序采用的是非编译性语言,这大大降低了程序源代码的安全性。任何人只要进入站点,就可以获得源代码,从而造成ASP应用程序源代码的泄露。2.程序设计中的安全隐患ASP代码利用表单(form)实现与用户交互的功能,而相应的内容会反映在浏览器的地址栏中,如果不采
3、用适当的安全措施,只要记下这些内容,就可以绕过验证直接进入某一页面。例如在浏览器中敲入“page.asp?x=1”,即可不经过表单页面直接进入满足“x=1”条件的页面。因此,在设计验证或注册页面时,必须采取特殊措施来避免此类问题的发生。二、防范对策我们可以采用迷惑法、隐藏法、加密法、ODBC数据源法和注册验证法等技术手段防止数据库文件被非法。(一)非常规命名法1.把数据库的主文件名进行修改,并且放到很深的目录下面防止数据库被找到的简便方法是为Access数据库文件起一个复杂的非常规名字,并把它存放在多层目录下。例如,对于网上花店的数据库文件
4、,不要简单地命名为“flodb”或“bloom.mdb”,而是要起个非常规的名字,例如:halodb,再把它放在如/db扩展名修改为ASP或ASA等不影响数据查询的名字但是有时候修改为ASP或者ASA以后仍然可以被,如将mdb修改为ASP以后,直接在IE的地址栏里输入网络地址,虽然没有提示但是却在浏览器里出现了一大片乱码。如果使用FlashGet等专业的工具就可以直接把数据库文件下来,因此需要找到一种FlashGet无法的方法。根据网站在处理包含unicode码的链接的时候将会不予处理的原理。可以利用unicode编码(比如可以利用“%3C
5、”代替“”等),来达到目的。而FlashGet在处理包含unicode码的链接的时候却“自作聪明”地把unicode编码做了对应的处理,比如自动把“%29”的unicode编码字符转化成“(”。即是说如向FlashGet提交一个22.0.1.2/dat/%29amitx.mdb的链接,它却解释成了22.0.1.2/dat/(amitx.mdb,当单击“确定”按钮进行的时候,FlashGet就去寻找一个名为“(amitx.mdb”的文件,当然找不到。(二)使用ODBC数据源在ASP程序设计中,应尽量使用ODBC数据源,不要把数据库名直接写在程
6、序中。例如:直接语句DBPath=ServerMapPath(“/db”)ODBC数据源语句ConnOpen“driver={MicrosoftAccessDriver(*.mdb)};dbq=”&DBPath可见,即使数据库名字起得再怪异,隐藏的目录再深,ASP源代码失密后,数据库也很容易被下来。如果使用ODBC数据源,就不会存在这样的问题了。(三)加密ASP页面可以使用微软公司的软件ScriptEncoder对ASP页面进行加密。它可以对当前目录中的所有的ASP文件进行加密,并把加密后的文件统一输出到相应的目录中。由于ScriptEnc
7、oder只加密在HTML页面中嵌入的ASP代码,其他部分仍保持不变,这就使得我们仍然可以使用FrontPage等常用网页编辑工具对HTML部分进行修改、完善,操作起来简单方便、效果良好。(四)利用Session对象进行注册验证为防止未经注册的用户绕过注册界面直接进入应用系统,可以采用Session对象进行注册验证。Session对象最大的优点是可以把某用户的信息保留下来,让后续的网页读取。一般情况,在设计网站时都要求用户注册成功后才可登录。但如果不采用Session对象进行注册验证,则用户在浏览器中敲入“URL/hrmis.asp?page
8、=1”即可绕过注册界面,直接进入系统。利用Session对象可以有效阻止这一情况的发生。相关的程序代码如下:%‘读取用户输入的账号和密码UserID=Request(“UserI
此文档下载收益归作者所有