ASP.NET+Access技术建站安全性初探

ASP.NET+Access技术建站安全性初探


2024年6月21日发(作者:)

第12卷第2期 

2013年4月 

常州信息职业技术学院学报 

Vok12 N0.2 

Apt.2013 

JournalofChanszhouVocationalCollege ofInformatbnTechnology 

ASP.NET+Access技术建站安全性初探 

马晓荣 孙悦 肖宁 

710100; (1.陕西职业技术学院计算机科学系

2.陕西交通职业技术学院信息工程系

陕西西安

陕西西安71oo18) 

摘要:针对Access数据库本身的安全性及ASP.NET网站设计过程中存在的常见安全问题,提出了增强ASP.NET+Access 

网站安全性的具体对策,在实际开发网站的过程中具有较强的指导作用,同时对于加强网络的安全性也具有重要的 

意义。 

关键词:AsP.NET;网站设计;安全性 

中图分类号:TP 393.08 文献标志码:A 文章编号:1672-2434(2Ol3)02删l26 D3 

Exploralion of Web Designing Security 

Based on ASP.NErI1+Access 

MA Xiao-rong SUN Yue XIAO Ning 

(1.Department of Computer Sconce,Shaanxi Vocational&Technical College,Xi’an 710100,Chin; 

2.Department of Information Engineering,Shaanxi College of Communication Technology,Xi’an 710018,China) 

Al ̄atet:According c0the security ofAccess database andthe problems inthe websRe design process ofASP.NET.this paper intro- 

daces the detailed countermeasures of s仃en星 e她

y神:ASP.NET;website design;securh'y 

hte security of ASP.NET十Access webs ̄e.It ropvides a strong guide for 

developing websites and has ̄ortant signif ̄ance for strengthening websRe security. 

在B/S模式下使用ASP.NET+Access的模式 

来开发Interact网站的思路已备受广大程序员的欢 

迎。ASP.NET作为一种典型的创建动态web内容 

的强大的服务器端技术,被广泛应用在网站建设中。 

Access数据库作为Microsoft公司推出的以标准 

安全漏洞和Access数据库本身存在的安全性问题。 

本文在对网站常见安全问题进行分析的基础上给出 

了相应的解决方案。 

1关键技术分析 

ASP.NET是一种全新的创建动态网页的技术, 

它是建立在微软新一代.NET平台架构上,在服务器 

端为用户提供建立强大企业级web应用服务的编 

译型编程框架,可用任何与.net兼容的语言开发应 

用程序,支持组件化、代码复用和快速开发等技术。 

Accesss数据库管理系统是Wh3dows平台上最 

JET为引擎的桌面型数据库系统,因其界面友好、操 

作简单而赢得广大用户的青睐。因此,将ASP.NET 

与Access结合使用已成为目前建设中小型网站的 

首选方案。但该方案在建设网站提供方便快捷的同 

时,日益突出的安全问题如数据库信息泄露、非法登 

陆等越来越受到用户的关注。该方案存在的安全隐 

患主要有两种,分别是使用ASP.NET设计网页时的 

收稿日期:2013-03-05 

适用、最受欢迎的数据库管理系统之一。它拥有大 

作者简介:马晓荣(1977一),女,讲师,硕士,主要研究方向:计算机软件、数据库系统 

第12卷第2期 马晓荣等:ASP.NET+Access技术建站安全性初探 27 

量工具和特性,界面简单友好,开发、操作容易;拥有 

在一个工作组级别的网络环境中,开发多用户数据 

库管理系统,能够实现C/S结构和相应的数据库安 

全机制,具备了许多先进的大型数据库管理系统所 

具备的特征。 

2网站安全分析 

2.1 Access数据库安全分析 

2.1.1 Access数据库存储隐患 

网站的重要信息都需要存储在数据库中,所以 

数据库是网站运营的基础,如果数据库( .m曲)的 

存储路径和文件名被非法用户通过各种方法猜到或 

者得到,那么这个数据库很有可能通过“URL/数据 

库所在路径名/数据库名.mdb”地址被非法用户下载 

到需要的位置。这样,安全性比较差,网站中的重要 

信息会被非法用户完全了解。 

解决上述问题常用的方法是将Access数据库 

文件的扩展名由“.mdb”改成“.aspx”,然后再修改数 

据库连接文件(如corm.aspx)中的数据库地址的内 

容,这样即使数据库文件的文件名和存储位置被得 

知,也会错误地认为无法进行下载。原因是IIS服 

务器不去处理“.mdb”文件,而是直接将内容输出到 

Web浏览器,而“.aspx”文件则要经过IIS服务器处 

理,Web浏览器显示的是处理结果,并不是ASPX 

文件的内容。 

这种解决方法却可通过FlashGet被完整下载, 

具体的方法是在其存储路径的“重命名”框中输入 

扩展名为.mdb名称,即可顺利将数据库下载下来。 

这表明仅仅依靠将数据库的扩展名由“.mdb”改成“. 

aspx”,还是存在一定的安全隐患。 

2・1.2 Access数据库解密隐患 

因为Access数据库的加密机制比较简单。所 

以即使为数据库设置了密码,破解密码也很容易。 

该数据库系统通过将用户输入的密码与某一固定密 

钥进行异或来形成一个加密串,并将其存储在 . 

mdb文件中从地址“&H42”开始的区域内。因为异 

或操作有着“经过两次异或就恢复原值”的特点,故 

可用这一密钥与 .mdb文件中的加密串进行第二 

次异或操作,Access数据库的密码便可轻松得出。 

基于此,解密程序便可容易地设计出。由此可知,只 

要数据库被下载了,无论数据库是否设置了密码,数 

据库中信息的安全性将没有任何保障。 

2.2 ASP.NET技术安全分析 

2.2.1 ASP.NET程序设计中的安全隐患 

ASP.NET代码使用表单实现交互,相应的内容 

将体现在浏览器的地址栏中,若没有适当的安全措 

施,只要非法用户记下地址栏中的内容,便可绕过验 

证直接进入核心页面。如在浏览器地址栏中输人 

bookview.aspx?X=aaa”,便可不经过表单页面而 

直接进入满足“X=aaa”条件的页面。 

2.2.2 SQL注入漏洞 

SQL注入就是攻击者通过web应用程序利用 

SQL语句或字符串将非法的数据插入到服务器端 

实际的数据库中,从而获得未经授权的访问和直接 

检索,最终控制网站获取重要的信息或破坏等。以 

网站登录页面中用户名和密码的验证为例,通常采 

用如下的代码:OleDbConnection MyConnection=new 

OleDbConnection(CcnnectionStrmg); 

Strsql=”Select from user where name=”’ 

UserName+”’and password=’”+password+”…: 

OleDbCommand MyCommand=new OleDbCom- 

mand(strsql,Myconnection); 

MyConnection.Open(); 

OleDbDataReader MyReader=MyCommand.Ex- 

ecuteReader0; 

If(MyReader.Read()) 

{ 

∥登录成功时要执行的代码 

} 

正常输人不会产生问题,但假如用户在用户名 

和文本框中输入:“a’or’a’=’a”也可以通过验证。 

2.2

3输入框中输入恶意脚本 

恶意脚本指用户将恶意的脚本代码输人网页文 

本框控件中,如“<scr ̄t>while(1)own(’http'g/www. 

baidu.corn/’)</script>”。单击网页的提交按钮,则 

会弹出无数个百度新窗口,直至CPU超负荷,系统 

资源消耗至死机为止。即攻击者可通过向输入框输 

入script代码达到攻击目的。 

3 ASP.NET+Access安全问题解决 

方案 

3.1 Access数据库存储安全对策 

常州信息职业技术学院学报 2013年4月 

因为Access数据库的加密机制比较简单,所以 

如何有效地防止Access数据库被非法用户下载,就 

成为提高ASP.NET+Access解决方案安全性中一 

个亟待解决的问题。 

1)修改数据库的名称。为Access数据库文件 

取一个复杂的非见名知意的名字,并将其存放在多 

层目录下是防止数据库被找到的简便方法。比如网 

上书店的数据库,不能简单地给其取名为“book. 

mdb”或者“bookstore.mdb”,而是取一个复杂的非见 

名知意的名字,如wdasdfsd.mdb,再将其放在如 

yykkddee/ghjkluoip/ghtqwer/之类的深层目录下。这样 

可以有效阻止那些通过猜测的方式得到Access数 

据库文件名的非法访问。 

2)数据库放在WEB根目录外或将数据库连接 

文件放到其它虚拟目录下,如WEB目录是e:\ 

webroot,可把数据库放到e:\data这个文件夹里,在 

e:\webroot里的数据库连接页中修改数据库连接地 

址为:”../data傲据库名”的形式,这样数据库可正常 

调用,但是无法下载,因为它不在WEB目录里。 

3)防止暴露数据库。为防止数据库被下载,还 

可在数据库内新建一个表,表内输入一个文本内容 

为<%abedefgasdPA>,可以任意输入内容,只要不 

能被执行即可。再将数据库扩展名改为.aspx,这样 

非法用户试图下载数据库时便会提示“aspx解析出 

错,第AAA行”。通过这样的操作,数据库将不会 

被暴露。此外配置.mdb文件解析对应,配置数据池 

等方法也可比较有效地防止数据库被暴露。 

3.2 ASP.NET程序设计中安全对策 

为防止未注册的用户绕过注册界面直接进入应 

用系统,可用Session对象进行注册验证。Session对 

象最大的优点是可以把某用户的信息保留下来,让 

后续的网页读取。如:设计要求用户注册成功后系 

统启动“bookview.aspx?page=aaa”页面。如果未 

使用Session对象进行注册验证,那么用户在浏览器 

中输入“URL/bookview.aspx?page=aaa”,就可以 

绕过注册界面,直接进入应用系统。可在用户登录 

时提交一个Session对象,如session[‘‘username”]将 

登录用户的name进行提交,在进入其它页面时先 

验证session[‘‘llserilame”]是否为空值,是否存在于 

数据库中以此来判断用户是否登录。可以有效阻止 

这一情况的发生。相关的程序代码如下:protected 

void Page Load(object sender,EventArgs e) 

{if(session[‘‘username”]==nul1)Response.Re. 

direct(“1og.m.aspx”);} 

这样用户必须输入正确的用户名及密码,否则 

即使输人“URL/viewifo.asp?page=1”也会自动跳 

转到Login.aspx页面,要求用户输入用户名和密码。 

3.3防止SQL注入漏洞安全对策 

对于SQL注入漏洞,可通过以下方法加以预 

防:①在生成SQL查询前通过验证控件对用户的输 

入进行验证,过滤掉单引号等的危险字符的输入,确 

保输入的内容只包含合法的数据;②在SQL语句中 

使用参数,由于OleDbCommand对象的parameters 

集合提供了类型检查和长度验证,使用它,则输入将 

被视为文本值而不是可执行代码,以下代码实现在 

调用SQL语句时使用Parameters集合: 

strsql=”select from user where name=@tl 

and password=@t2”; 

Mycommand.Parameters.Add(”@tl”,OleDbType. 

Char).Value=TextBox1.Text; 

Mycommand.Parameters.Add(”@t2”,OleDbTypc. 

Char).Value=TextBox2.Text; 

3.4 ASP.NET中恶意脚本的消除 

为有效地防止用户恶意脚本的输入,一是严格 

地对用户的输入进行验证屏蔽掉“<”或“>”等危 

险字符;二是将用户输人的“<”或“>”等恶意字符 

进行删除;三是通过Server.HtmlEncode()方法对用 

户输入的内容进行编码转换,从而使浏览器不会执 

行含有“<SCRIPT>”标记的脚本代码。 

针对ASP.NET+Access技术建站方案中容易 

出现的安全性问题进行了剖析,并提出了相应的解 

决对策,在实际开发网站的过程中具有较强指导作 

用,同时对于加强网络安全性也具有重要的意义。 

参考文献: 

[1]崔永红.ASP.NET程序设计[M].北京:中国铁道出版 

社,2007:18—27. 

[2]翁健红.ASP.NET程序设计案例教程[M].北京:清华 

大学出版社,2001:9—11. 

[3] 戴明星,陈正奎.web网站的安全代码设计[J].学术研 

究,2010(10):92・94. 

[4]李杨.网站安全漏洞解析[J].四川兵工学报2012,33 

(1)97-99. 


发布者:admin,转转请注明出处:http://www.yc00.com/web/1718924472a2753590.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信