:
日常生活和办公环境中,我们经常需要通过网络存放文件或者共享数据,FTP,Email邮件、MSN/QQ等都能实现文件的传送,但是各有优缺点。其中,"FTP"功能最为强大,但使用起来却相当复杂;"Email"的传送比较方便,但是附带文件数最多几兆,使用也不直观;MSN/QQ等是实时传送文件的方法,需要双方同时在线。网络硬盘综合了各种优点,是一种功能强大、操作便捷、大容量、异步的存储工具。
只要您能上网,您就可以用您在我们这里注册的有效帐户进行登录,对自己的文件夹和文件进行管理,还可以跟用户及所有网民之间共享相册跟视频文件。因此,开发网络硬盘系统有广阔的市场发展前景。
4.2ASP.NET+SQL的安全隐患
4.2.1安全隐患
ASP.NET+SQL解决方案的主要安全隐患来自SQL数据库的安全性,其次在于ASP.NET网页设计过程中的安全漏洞。
1)SQL数据库的存储隐患
在ASP.NET+SQL应用系统中,如果获得或者猜到SQL数据库的存储路径和数据库名,则该数据库就可以被下载到本地。例如:对于网上书店的SQL数据库,人们一般命名为book.mdf、store.mdf等,而存储的路径一般为"URL/database"或干脆放在根目录("URL/")下。这样,只要在浏览器地址栏中敲入地址:"URL/database/store.mdf",就可以轻易地把store.mdf下载到本地的机器中。要解决这个问题,可以将文件的后缀名.mdf改为.asp,这样就不能被下载了。
2)SQL数据库的解密隐患
由于SQL数据库的加密机制非常简单,所以即使数据库设置了密码,解密也很容易。该数据库系统通过将用户输入的密码与某一固定密钥进行异或来形成一个加密串,并将其存储在*.mdf文件中从地址"&H42"开始的区域内。由于异或操作的特点是"经过两次异或就恢复原值",因此,用这一密钥与*.mdf文件中的加密串进行第二次异或操作,就可以轻松地得到SQL数据库的密码。基于这种原理,可以很容易地编制出解密程序。
由此可见,无论是否设置了数据库密码,只要数据库被下载,其信息就没有任何安全性可言了。
3)源代码的安全隐患
由于ASPNET程序采用的是非编译性语言,这大大降低了程序源代码的安全性。任何人只要进入站点,就可以获得源代码,从而造成ASPNET应用程序源代码的泄露。在真正使用该系统时,可以使用ASP.NET网站发布程序,将ASP.NET源代码便以为DLL文件。
4)程序设计中的安全隐患
ASP.NET代码利用表单(Form)实现与用户交互的功能,而相应的内容会反映在浏览器的地址栏中,如果不采用适当的安全措施,只要记下这些内容,就可以绕过验证直接进入某一页面。例如在浏览器中敲入"......page.asp?x=1",即可不经过表单页面直接进入满足"x=1"条件的页面。因此,在设计验证或注册页面时,必须采取特殊措施来避免此类问题的发生。
4.2.2提高数据库的安全性
由于SQL数据库加密机制过于简单,因此,如何有效地防止SQL数据库被下载,就成了提高ASP.NET+SQL解决方案安全性的重中之重。
1)非常规命名法
防止数据库被找到的简便方法是为SQL数据库文件起一个复杂的非常规名字,并把它存放在多层目录下。例如,对于网上书店的数据库文件,不要简单地命名为"book.mdf"或"store.mdf",而是要起个非常规的名字,例如:faq19jhsvzbal.mdf,再把它放在如./akkjj16t/kjhgb661/acd/avccx55之类的深层目录下。这样,对于一些通过猜的方式得到SQL数据库文件名的非法访问方法起到了有效的阻止作用。
2)ODBC数据源
在ASP程序设计中,应尽量使用ODBC数据源,不要把数据库名直接写在程序中,否则,数据库名将随ASP源代码的失密而一同失密。例如:
DBPath=Server.MapPath("./akkjj16t/kjhgb661/acd/avccx55/faq19jhsvzbal.mdf")
conn.Open"driver={MicrosoftSQLDriver(*.mdf)};dbq="&DBPath
可见,即使数据库名字起得再怪异,隐藏的目录再深,ASP源代码失密后,数据库也很容易被下载下来。如果使用ODBC数据源,就不会存在这样的问题了:
conn.open"ODBC-DSN名"
3)利用Session对象进行注册验证
为防止未经注册的用户绕过注册界面直接进入应用系统,可以采用Session对象进行注册验证。Session对象最大的优点是可以把某用户的信息保留下来,让后续的网页读取。比如:设计要求用户注册成功后系统启动hrmis.asp?page=1页面。如果不采用Session对象进行注册验证,则用户在浏览器中敲入"URL/hrmis.asp?page=1"即可绕过注册界面,直接进入系统。利用Session对象可以有效阻止这一情况的发生。
结束语
毕业设计对我们每个毕业生都非常重要。在两个多月的毕业设计中,通过广泛查阅与课题有关的内容,使我掌握了许多与计算机有关的东西,更重要的是使我对ASP、SQL等软件功能和应用有了一定的了解。为此,我对设计一套完整的软件系统的步骤、方法及思路有了一个全新的认识。这加深了我对计算机软件设计的理解,同时也给我提供了一次为以后实际模拟锻炼的机会,我感到受益非浅。为此,我也希望我的毕业设计能给指导我的老师交上一份满意的试卷。
通过这次的毕业设计,我不仅拓宽了自己的知识面,还在实践过程中巩固和加深了自己所学的理论知识,使自己的技术素质和实践能力有了进一步的提高,同时我的专业水平也有了很大的进步。
同时,在软件开发方面也累积了不少经验,特别是在对软件开发工具不很熟悉的情况下,通过自己的学习和导师的指导完成了设计任务。并在设计过程中,自己分析问题和解决问题的能力都得到了锻炼和提高,完善了自己的知识结构,加深了对知识的理解。
这次毕业设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的。在学与做的过程中自身的努力以及相关图书资料的帮助,逐渐熟悉了ASP在数据库方面的应用知识。程序开发的一般过程和对数据库知识的进一步的了解,在这个快速发展的当代社会里,数据库已经普遍应用在各个领域。在这次的毕业设计中我学习到不少的数据库知识,但由于自己的理论知识水平有限,实践知识和设计经验不足,在设计过程中难免存在一些问题,甚至错误。恳请各位老师批评指正,致使我在以后的工作和实践中加以改进和提高。
??
??
??
??
-1-
基于ASP.NET+SQL校友录网站设计与实现
上一篇:
ASP_net007基于WEB的选课系统(论文和程序)
下一篇:
数字图像的可逆数字水印研究