论文部分内容阅读
[摘要]随着计算机网络技术的飞速发展,网络课堂在学校教学中得到广泛地普及与发展,使得教育教学改革有了新的方向。但网络课堂本身在设计上存在不少问题,一定程度上影响了使用效果,本文集中讨论网络课堂Web系统开发中的安全性问题。
[关键词]网络课堂 身份验证 授权
一、网络课堂安全性概述
使用网络课堂辅助教学以其突破时间、空间、地点的限制和共享资源、交流讨论方便等优点得到了众多学校教师的青睐,网络课堂可以充分利用网络的优势来搭建一个虚拟的教学环境, 在其中进行与教学相关的工作,从而弥补传统课堂教学的不足。2000年,教育部启动的“新世纪网络课程建设工程”中的大多数网络课程都是以网络课堂的形式实现的,但在网络课堂的使用过程中,由于系统本身的安全性不高而导致的各种问题越来越引起人们的重视。
无论是使用早期工具JSP、ASP、PHP还是最新的ASP.NET技术开发的网络课堂系统,都会采用模块化的设计方法,系统的功能模块一般包括网络信息发布模块、网络选课模块、网络答疑模块、教学考评模块等,这些功能模块中的信息都与学校的教学管理工作密切相关,对于信息的安全性要求是非常高的。因此,在网络课堂开发过程中考虑使用用户身份验证、数据加密、窗体认证、存储过程等安全策略,在一定程度上保证系统安全是十分必要的。
二、ASP.NET安全技术
本文讨论的网络课堂系统是使用ASP.NET框架结合SQL Server数据库进行开发的,ASP.NET作为一个功能强大的Web开发工具,提供了高效的安全策略,基于ASP.NET框架的安全策略包括身份验证、用户授权和通信安全三个方面。
1.身份验证
身份验证是一个用来标识应用程序客户端合法身份的过程。这里所说的客户端可能是终端用户、计算机或某一服务进程。利用ASP.NET配置文件Web.config中元素,通过将其mode属性设置为Windows、Forms、Passport和None四种不同值,ASP.NET提供了四种验证和授权:Windows验证、Forms验证、Passport验证和None验证。Windows验证是默认的验证方式,也就是利用Windows的账户来验证用户的身份,这种方法相对来说系统开销很大。Forms验证中可以使用HTTP客户端重定向,将未经身份验证的请求重定向到某一HTML窗体。Passport验证是一种相对安全的验证方式,但必须支付服务的费用。None验证为不使用ASP.NET的验证进程。
2.用户授权
授权过程负责控制通过身份验证的客户端可以访问哪些资源,以及可以执行哪些操作,包括对文件、数据库等资源的访问及操作。考虑系统的延展性和稳定性,许多Web应用程序都是通过调用方法来授权客户端所能够执行的操作,不让用户直接通过URL地址访问底层的资源。ASP.NET支持两种基本授权方式,一种是文件授权,另一种是URL授权。
3.安全通信
应用程序执行时需要在应用程序的各层之间频繁传输数据,其中不乏一些重要的机密数据,比如,账户密码,登录凭证,证件号码等。为了防止重要信息或机密数据在传输过程中被非法截取和修改,对通信端点必须加以保护。
三、网络课堂安全技术
1.窗体认证
在网络课堂Web系统设计中,结合ASP.NET的Form认证和用户授权,采用基于角色的认证授权方案。这种权限的设计方案具体为:根据使用系统的不同人员或不同工作性质,划分为普通用户、高级用户、信息发布员、数据维护员和高级管理员等不同角色,不同角色拥有不同功能的权限,一个用户可以拥有多个角色,这样用户与访问权限就实现了逻辑分离。角色的权限设定后只需给用户分配一个或多个角色即可,而不必一个一个地设定用户权限,大大方便了系统的管理。
窗体认证的步骤为:用户发出一个请求,IIS允许该请求,用户被重定向到登录页面,用户提供凭据信息(用户名和密码)并提交登录窗体。系统根据数据库对提交的凭据信息进行验证,若通过则获取用户角色信息,并根据角色与功能权限的对应关系得到用户对所有功能模块的权限情况。登录系统后再根据用户对各模块功能权限的不同访问对应的页面,在执行具体操作时,根据权限决定对应页面是否可以访问,这样从模块功能的链接上保证了系统安全。
2.口令加密
网络课堂系统中有许多重要的信息,其中的口令是系统中最敏感、最关键的信息,口令的安全管理至关重要。在系统设计中,口令信息应保存在数据库中,且数据库的用户表中存放的不能是用户输入的明文,而是经过加密算法计算出的密文。比较简单而有效的做法就是利用脚本语言在管理的客户端用户提交时加密后再传送,服务器中数据库直接以加密后的编码存储。下面一条语句可以实现对口令数据进行“SHA1”(散列值加密)变换:String hashed=FormsAuthentication.HashPasswordForStoringInConfigFile-(PasswordTextBox.Text,“SHA1”)。
这样,数据库中保存的就是经过加密的长度为40位的密文字符串,真正的密码就只有用户可以知道了,即使被截获,也只能获得不可用来登录的密码密文。
3.防SQL注入攻击
SQL注入式攻击指的是利用程序开发者编程过程中的漏洞,将额外的恶意SQL语句代码追加到合法代码之后,来影响被执行的SQL脚本,从数据库获得原本无权访问的数据信息,防止SQL注入式攻击的方法有很多种。
(1)过滤可疑字符。在利用表单输入的内容构造SQL命令之前,把所有输入内容过滤,如果有可疑字符(如“’”、“or”、“
[关键词]网络课堂 身份验证 授权
一、网络课堂安全性概述
使用网络课堂辅助教学以其突破时间、空间、地点的限制和共享资源、交流讨论方便等优点得到了众多学校教师的青睐,网络课堂可以充分利用网络的优势来搭建一个虚拟的教学环境, 在其中进行与教学相关的工作,从而弥补传统课堂教学的不足。2000年,教育部启动的“新世纪网络课程建设工程”中的大多数网络课程都是以网络课堂的形式实现的,但在网络课堂的使用过程中,由于系统本身的安全性不高而导致的各种问题越来越引起人们的重视。
无论是使用早期工具JSP、ASP、PHP还是最新的ASP.NET技术开发的网络课堂系统,都会采用模块化的设计方法,系统的功能模块一般包括网络信息发布模块、网络选课模块、网络答疑模块、教学考评模块等,这些功能模块中的信息都与学校的教学管理工作密切相关,对于信息的安全性要求是非常高的。因此,在网络课堂开发过程中考虑使用用户身份验证、数据加密、窗体认证、存储过程等安全策略,在一定程度上保证系统安全是十分必要的。
二、ASP.NET安全技术
本文讨论的网络课堂系统是使用ASP.NET框架结合SQL Server数据库进行开发的,ASP.NET作为一个功能强大的Web开发工具,提供了高效的安全策略,基于ASP.NET框架的安全策略包括身份验证、用户授权和通信安全三个方面。
1.身份验证
身份验证是一个用来标识应用程序客户端合法身份的过程。这里所说的客户端可能是终端用户、计算机或某一服务进程。利用ASP.NET配置文件Web.config中
2.用户授权
授权过程负责控制通过身份验证的客户端可以访问哪些资源,以及可以执行哪些操作,包括对文件、数据库等资源的访问及操作。考虑系统的延展性和稳定性,许多Web应用程序都是通过调用方法来授权客户端所能够执行的操作,不让用户直接通过URL地址访问底层的资源。ASP.NET支持两种基本授权方式,一种是文件授权,另一种是URL授权。
3.安全通信
应用程序执行时需要在应用程序的各层之间频繁传输数据,其中不乏一些重要的机密数据,比如,账户密码,登录凭证,证件号码等。为了防止重要信息或机密数据在传输过程中被非法截取和修改,对通信端点必须加以保护。
三、网络课堂安全技术
1.窗体认证
在网络课堂Web系统设计中,结合ASP.NET的Form认证和用户授权,采用基于角色的认证授权方案。这种权限的设计方案具体为:根据使用系统的不同人员或不同工作性质,划分为普通用户、高级用户、信息发布员、数据维护员和高级管理员等不同角色,不同角色拥有不同功能的权限,一个用户可以拥有多个角色,这样用户与访问权限就实现了逻辑分离。角色的权限设定后只需给用户分配一个或多个角色即可,而不必一个一个地设定用户权限,大大方便了系统的管理。
窗体认证的步骤为:用户发出一个请求,IIS允许该请求,用户被重定向到登录页面,用户提供凭据信息(用户名和密码)并提交登录窗体。系统根据数据库对提交的凭据信息进行验证,若通过则获取用户角色信息,并根据角色与功能权限的对应关系得到用户对所有功能模块的权限情况。登录系统后再根据用户对各模块功能权限的不同访问对应的页面,在执行具体操作时,根据权限决定对应页面是否可以访问,这样从模块功能的链接上保证了系统安全。
2.口令加密
网络课堂系统中有许多重要的信息,其中的口令是系统中最敏感、最关键的信息,口令的安全管理至关重要。在系统设计中,口令信息应保存在数据库中,且数据库的用户表中存放的不能是用户输入的明文,而是经过加密算法计算出的密文。比较简单而有效的做法就是利用脚本语言在管理的客户端用户提交时加密后再传送,服务器中数据库直接以加密后的编码存储。下面一条语句可以实现对口令数据进行“SHA1”(散列值加密)变换:String hashed=FormsAuthentication.HashPasswordForStoringInConfigFile-(PasswordTextBox.Text,“SHA1”)。
这样,数据库中保存的就是经过加密的长度为40位的密文字符串,真正的密码就只有用户可以知道了,即使被截获,也只能获得不可用来登录的密码密文。
3.防SQL注入攻击
SQL注入式攻击指的是利用程序开发者编程过程中的漏洞,将额外的恶意SQL语句代码追加到合法代码之后,来影响被执行的SQL脚本,从数据库获得原本无权访问的数据信息,防止SQL注入式攻击的方法有很多种。
(1)过滤可疑字符。在利用表单输入的内容构造SQL命令之前,把所有输入内容过滤,如果有可疑字符(如“’”、“or”、“