基于ASP_NET的精品课程网站安全防护探讨

更新时间:2023-05-16 14:33:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于ASP_NET的精品课程网站安全防护探讨

基于ASP.NET的

精品课程网站安全防护探讨

陕晋军

山西建筑职业技术学院计算机工程系   山西    030006

摘要:本文讨论了基于ASP.NET开发的精品课程网络架构,旨在从网络安全的角度来考虑精品课程网络架构的设计。关键词:Asp.net;网络安全

0  引言

精品课程是指体现现代教育思想,符合科学性、先进性和教育教学的普遍规律,具有严正风范和鲜明特色,并能恰当地运用现代教学技术、方法与手段,教学效果显著,具有示范性和一定辐射推广作用的优秀课程,是高校教学质量与教学改革工程的重要组成部分。随着国家级精品课程等一大批网络课程陆续投入使用,网络课程的发展进入了空前繁荣的阶段。优良的网页制作技术以及良好的界面是发挥网站功能优势的前提条件。课程网站建设的好坏直接影响到学生自主学习的兴趣和质量,影响到开放式现代教学成果的质量。近几年,随着精品课程的建设,精品课程网站如雨后春笋不断涌现,有些网站相当不错,不仅内容丰富多彩,页面制作也很精美,让人流连忘返。网络课程以它独有的优势正在受到前所未有的关注,可以预见今后将会有更多的课程平台投入使用。在这样的形式下,一个突出的问题摆在我们面前,在目前完全开放的网络平台中,对于网络课程的开发,系统的安全设计占有很重要的地位。如果一旦网络课程平台遭到攻击,那么其教学功能受到很大影响:轻则网页出现乱码、格局出现混乱、网页显示速度变慢,重则用户的账号或者密码失效,甚至分析了各层次间可能存在的安全隐患,提出解决问题的方案,能会出现更为严重的数据库文件被破坏。无论出现哪种情况,其对网路课程平台的威胁都是不可忽视的,它会影响网络课程的正常运转从而造成人力、物力和财力极大浪费。

网页有动态与静态之分。动态网页泛指能够运用数据库技术或者通过脚本语言编程实现用户与环境之间交互的网页。静态网页是指不需要用户与环境的交互,简单地呈现文本或者图像信息的网页。网络课程正是通过这两种形式网页的相互结合呈现资源和组织教学活动的,如图1所示。

图1  网络课程教学示意图

目前大部分高职院校精品课程网站的建设,主要是用Dreamweaver来制作网站的框架,用asp.net具体实现前台开发,大部分后台数据库为Microsoft SQL Server 2000,中间通过ADO来访问数据库。大部分精品课程按照申报要求基本上包含课程简介、师资队伍、资料下载库、在线考试、在线交流等模块。流程简单易懂,无论老师和学生在何时何地,他们都可以学习可以教学。在线系统主要面向两个对象:教师和学生,其基本目的是建立教师与学生之间的交流平台,以大大方便教师与学生双方的互相了解和沟通,当然一般的浏览者也可以浏览一些发布的信息等。在线系统的设计(大多都要通过语言编程运用数据库技术来实现,如图2

所示。

1  基于asp.net的精品课程网络构架分析

作者简介:陕晋军(1977-)现在江南大学信息学院攻读硕士学位。

2009.11

47

基于ASP_NET的精品课程网站安全防护探讨

相对于数据库来说的,站点与数据库连接,用户通过Web程序访问数据库,如从数据库查询数据、向数据库中插入数据,都要操作数据库,SQL就是向数据库中输入了不期望的数据,导致数据库的执行异常。

2  安全防护原则的探讨

开发好的网络课程,不仅要在在课程的教学设计、学习资源、页面结构和颜色搭配上下功夫,也要注重网络课程的

图2  精品课程网站框架

应用程序的执行速度和安全性。远程用户与服务器(学习者与网络课程)构成了B/S网络模式,网络管理员应该重视上述的安全隐患,并且懂得如何防止这些入侵行为,从而为网络课程的安全运行构建良好的环境。

我们需要重点考虑的是基于Asp.net技术的网络课程的动态技术的安全技术。通过分析构建合理的代码安全设计(优化),建立安全的应用程序。网络课程的开发者可以从下面构建安全的asp.net技术网络课程。

网络课程按照功能模块划分,基本上可以分为如图2所示的模块,根据模块的功能不同需要编写不同的后台代码,在.net中,页面的呈现大多数都依靠窗体,在Pageland事件中,通过编写程序把信息的放入窗体(如:Label窗体、Data Grid窗体、Data List窗体)这样就在页面加载的时候呈现了信息。事件的触发一般都是运用Button窗体事件来提交输入值,或者调用功能模块函数,后台代码与数据库的连接,要依靠ADO数据驱动程序,如访问SQL server就要调用编写usiIIgSystem.Daca.Sqlclient,然后建立sqlco曲ection对象实例,如sqlConnection实例名=new sqlconnection(连接参数)。

由于Asp.net是编译执行的,后台代码完全在服务器端运行,因此Asp.net应用是比较安全的,但是却不能认为通过前台页面访问数据库是完全安全的。后台代码只是执行没有程序错误的语句,操作者可以在前端输入合法的值,导致网站不期望的结果。

目前针对asp.net技术的开发的网络课程,入侵者一般会通过如图3所示侵入方式。

2.1  基于ASP.NET的网站安全性检测

由于高校精品课程建设需求不断变化,如单纯依靠软件公司开发,它的员工流动性强,所以对开发者开发健壮、高质量的代码提出更高的要求。虽然对所有开发者进行代码安全技术的培训是必要的,但不可否认,自动检测代码安全漏洞的工具对安全代码设计也大有裨益。

到目前为止,开发者常用的工具只能涵盖功能测试的特定方面,例如性能测试,故障点侦查。人工检查代码有着许多局限,而且要求开发者具有丰富的经验,所以对于编写高质量的Web应用来说,面向应用程序安全的检测工具(如Domain、HDSI、CSAI等)是十分关键的。

要迅速提高应用的质量和安全性,最有效的办法是给开发者提供一个自动测试应用的工具。如果在单元测试期间,工具能够检测出应用的安全缺陷,并将修补建议嵌入到代码

图3  侵入方式

之中,开发者就能立即找出代码中存在的错误,这不仅方便了现有错误的修改,而且也有助于避免将来再犯同样的错误,不断地提高代码抗攻击的能力。

由于开发者操作的失误,或者考虑不全面,对程序文件或者其它受保护的文件没有选择合适的用户验证方式,导致入侵者很顺利得就获得了文件的权限。入侵者获得文件权限后,就能对文件进行操作,任意修改网络课程站点。用户与服务器的操作一般是通过向文本框中输入数据,如果在文本框中输入脚本语言,服务器没有过滤文本框内容就直接显示文本框中的内容,浏览器就会执行脚本语言,这种脚本语言一般是跨站点脚本语言,执行跨站点脚本语言会有一定的危害:如盗取会话标识、链接到其它危害网站上等等。sQL是

2.2  用户输入的校验分析

在Web应用开发中,开发者最大的失误往往是无条件的信任用户输入、总是通过浏览器和服务器交互,从而打开了攻击Web应用的大门。

因此,只有严密地验证用户输入的合法性,才能有效抵抗入侵者的攻击。应用程序可以用多种方法执行验证,例如,

在认可用户输入之前执行验证,确保用户的输入中只包含合

[下转44页]

482009.11

基于ASP_NET的精品课程网站安全防护探讨

4  小结

随着上网人数的增加,网络速度的提高,书店上网意义重大,将成为网络时代书业的新趋势。当然,网上书店也不能完全取代传统书店。到一个真实的书店去亲手翻翻书,闻闻书的味道,是一种很愉快的体验。可以把网上书店当对传统书店销

图3  系统目录结构

售方式的一种补充。总之,传统书店建立自己的网上书店有助于自身的发展,对树立书店的形象具有极好的促进作用。

下面对各个文件夹的功能做简单的介绍:

(1)include 用于存放整个Web应用程序用到的公共文件。(2)admin  用于存储系统管理员的后台操作脚本,包括图书分类管理、图书信息管理、站内公告管理、订单管理、用户管理等功能。

(3)admin\images 用于保存上传的图书封面图片。(4)images 用于网页中用到的图片文件。

(5)user 用于存储会员的前台操作代码,包括用户投诉和会员管理等。

(6)shop用于存储与购书信息相关的代码。(7)guestbook用于会员书评的相关代码。

其他的源代码这里不一一介绍了。

参考文献

[1]刘亚姝,许小荣等.ASP动态网站开发技术与实践.北京:电子工业出版社.2007.

[2]汪晓平,钟军.ASP网络开发技术(第二版).北京:人民邮电出版社.2004. 

[3]徐国智,汪孝宜等.SQL Server 数据库开发实例精粹.北京:电子工业出版社.2006.

[4]曾清国.Windows 2000+ASP+SQL Server案例教程.科海培中出版社.2004. 

[5]启明工作室.精通SQL Server 2005数据库应用系统开发.北京:人民邮电出版社.2007.

[上接48页]

法的字符,并且所有输入域的内容长度都没有超过范围。必要时不仅采取强制性的长度限制策略,而且还可以对输入内容按照明确定义的特征集执行验证。

应在所有的需要通过网络输入的地方进行验证,比如文本框和其他表单输入字段,字符串查询参数等。过滤策略应该是只允许正确的输入,拒绝非法输入。这是因为定义正确的输入策略比过滤所有的非法输入要容易得多。

执行包含在其中的代码。使用参数集方式可以严格限定输入的类型和长度。如果输入型超出范围将会触发异常。

第三种方法是使用SQL参数API,让编程环境的底层API来构造查询。

使用这些API时,开发者或提供一个查询模板,或提供一个过程,然后指定一系列的参数值,由底层API将参数值嵌入到查询模板,然后将构造出来的查询提交给服务器执行。这种办法确保参数能够正确嵌入。例如,系统将对引号进行转义处理,从根本上杜绝SQL注入攻击的发生,同时,在表单中引号仍是一个允许输入的有效字符。

2.3  SQL注入攻击及防范

(1)SQL注入攻击原理。盲目信任用户输入是保障Web应用安全的第一敌人。用户输入的主要来源是HTML表单中提交的参数,如果不能严格地验证这些参数的合法性,就有可能危及服务器的安全。

(2)SQL注入攻击防范。要防止上述攻击行为,有以下三种方法。

第一种方法是禁止引号之类的特殊字符输入。

第二种方法是限定输入域的内容必须属于某个合法字符的集合。

为了避免注入式攻击请使用SQL的参数方式。如果使用参数集合,输入的内容将被当作文本值来对待,数据库不会

44

2009.11

3  结语

高职院校精品课程的建设正在全面推开,本文意在提醒大家,在使用ASP.NET技术建站时,需要特别考虑安全防护方面的因素。对程序员来说,书写代码时要注意严格过滤用户的输入数据,并经常使用工具对ASP.NET网站进行安全检测。对服务器管理人员来说,要关掉所有用不到的网络服务,对提供网络服务的软件经常进行更新,保证精品课程网站的安全运行,才有可能实现优质教学资源的共享。

本文来源:https://www.bwwdw.com/article/4z94.html

Top