在线考试系统防作弊策略
- 格式:pdf
- 大小:249.23 KB
- 文档页数:4
ISSN1009—3044ComputerKnowledgeandTechmlogy毫奠知识≮技术
V01.6.No.33,November2010,PP.9660—9662
基于ASP.NET在线考试系统防作弊策略张艳军
E-maihxsjl@ccce.net.cnhttp://www.dnzs.net.cnTel:+86—55l一56909635690964
(九江学院,汀两几汀332005)摘要:在线考试系统以其高效的特性在各个高校普及开来,但是很多在线考试系统不能够保证在线考试的公平性,原因是没有设计防作弊功能.该文主要探讨了几种防作弊的策略,以增强在线考试系统的公平性。关键词:在线考试;防作弊;ASP.NET;MDS算法中囤分类号:TP311文献标识码:A文章编号:1009-3044(2010)33.9660-03
StopcheatingStrategiesofAsp.net-BasedOnlineExamSystem
ZHANGYahJun0iujiangUniversity,Jiujiang332005,China)Abstract:Theexaminationsysteminlinewiththecharacteristicsindifferentinstitutionsofhighereducation,butmanyonlinetheexami—nationsystemwmguaranteejusticeexaminationforanyfunctionpreventcheating.Ttlisarticlemainlydiscussesseveralprevent
cheat-
ingstrategytoenhancejusticeofonlinetheexaminationsystem,
Keywords:OnlineExam;Stopcheating;ASP.NET;MDS
arithmetic
ASP.NET是一种创建动态Web应用程序的技术,是一个专门用来开发Web应用程序的开发平台。基于ASP.NET的在线考试系统一般采用B/S的机构模式。B/S通常分三层结构,第一层客户端;第二层Web服务器;第三层数据库端。因此防作弊系统可以从队客户端限制,服务器及数据库端加密等方式来实现。下面就几种防作弊策略进行阐述。
1基于ASP.NET的防越界面登录防止越界面髓录,主要是防止非法用户绕过鼙录界面,直接在地址栏输入其他页面地址进入考试系统,进行盗取试题答案等非法操作。这个问题可以通过建迂session对象来解决,首先判断session是否为空,如果为空则转入登录页面,如果不为空则正常加载。方法代码如下:C#codepublicclassBasePage:System.Web.UI.Page
{∥重载页面方法
ProtectedoverridevoidOnload(EventArgse)f,,如果没有登录.转到登录,Session不为空,则正常加载页面.
If(Session[”UserName”]==null)fResponse.Redirect(”-/Admin/Login.aspx”);}else{Base.OneLoad(e);}}}
2基于ASP.NET的防多点登录在线过程中.考生有jI能进行多IP登录,就是用一个账户信息在不同的电脑上登录同一个考试系统。为了防止这种多点登录的情况,我们引入Session作为变量失效的时问,通过设置Session的值来决定用户登录有的效性。首先判断有没有登录,如果用户没有登陆,则登陆,并将径陆信息放到application,信息为:用户id,用户l;essionid,用户餐陆时问,登陆IP;如果用户已登陆,则每次请求要检查application,一旦用户id相同,而sessionid不同,即表明该用户在其它地方登陆,当前登陆无条件注销,也就是将session设置为失效,转到登陆页面,提示用户该用户id登陆过,当前登陆已注销。下面是实现防止多点登录的程序。ProtectedvoidbtuLogin—Click(objeetsender,EventArgse)
收稿日期:2010—10-26作者简介:张艳军,男。江西九江人,讲师,本科,研究方向:计算机网络安全。
本栏目责任编辑:测媛媛万方数据第6卷第33期(2010年11月)ComputerKnowleIgeandTechnology电■知识与技术
{StringsirK=txtName.Text+”一”+txtPwd.Text;//得到Cache中的给定str_k的值StringstrUser=Convert.Tostring(Cache[tre∽;
//Cache中没有该Str_K的项目,表名用户没有登录,或者登录超时if(strUser=String.Empty)//TimeSpan构造函数,判断是否登录。
{
TimeSpanSessTimeOut=newTimeSpan(0,0,HttpContext.Current.Session.Timeout,0,o);HttpContext.Current,Cache。Insert(str_K,str_K,null,DateTime。MaxValue,SessTimeOut,CachehemPriority.NotRemovable,null);Session[“User”】=8tr_l(;Response.Write(“<h2style='eolor:red'>成功登录!”);
lelse//在Cache中存在该用户,禁止再次登录
(Response.Write(“<h2style='color:.red'>禁止再次登录!”);Return;l
l
3键盘控制由于在线考试,老师无法监管到每个学生,为了防止学生利用网络搜索答案,或者利用复制,刷新等方式作弊,对考生所用键盘的一些辅助键或者功能键进行适当的屏蔽限制,可以很好的防止学生作弊。屏蔽键盘主要是将Event的属性KeyCode的值至零。例如屏蔽刷新键F5。可以用如下代码:
if(event.keyCode--=l16)/L屏蔽F5刷新键{event.keyCode=0;ev‘e玎t.retum.Value---false:lCtrl键.回车键都可以用此方法屏蔽。只要查ASCII表找出其ASCII值就可以了。
4防止SQL设计漏洞攻击SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入或页面请示的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容可能直接用来构成SQL命令,如果不加防范的话,很容易受到SQL注入式攻击。下面是一个常见的SQL注入式攻击过程示例:1)ASP.NET登录页面,有两个文本输入框TXT_USERID、TXT_PASSWORD用来输入用户名和密码,一个登录按扭进行验证登录。2)单击“登录”按扭后根据文本框构造动态SQL命令,并根据是否返回记录为登录成功的标志。代码如下:SqlConneefioncon=newSqlConnection(@ConfigurationSettings.AppSettings[”server'。豫jmpasswordPassword=newjmpassword0;
stringpassword=Password.EneryptPassword(txtpassword.Text.ToStringO,”SHAl”、+Password.EneryptPassword(txtpassword.Text.ToStringO,"MD5”);
SqlCommandtorero=newSqlCommand(”selectcount(4)fromverifywhereid=”’+txtuserid.Text+”7andpassword=”+password+”“‘,con);
con.Ol弛nO;‘intjl=(Int32)comm.ExecuteSealar0;
con.Close0;3)攻击者在用户名输入框中输入“tH’or’l’=71”,密码框为空,单击登录。4)经过SQL注入攻击后生成的SOL命令变为:舱leetcount(+)fromV啦whereid-俏7or’1"--Iandpassword=一.从而改变SQL语句的逻辑含义,服务器执行后已经不能真正验证用户身份,系统就错误地授权给攻击者。甚至以出现危害更大的代码。如文本框输"LH';DROPTABLEⅥ£I哪Y;一一,SQL语句将生成为:selectcount(4)fromveri每whereid='LI-I';DROPTABLEVElmY;一and
password=“。防范SQL注入攻击的措施:.1)将SOL中使用的一些特殊符号,如“”。“一”,“严”,“%”等,用R印laceO方法过滤掉,缺少了这些符号,攻击代码也就变得没有意义。2)限制文本框输入字符的长度。3)检查用户输入的合法性,确信输入的内容只包含合法的数据。4)充分利用正则表达式来检验数据的合法性。数据检查应当在客户端和服务器端都执行,之所以要执行服务器端难,是为了弥
本拦目责任编辑:谢媛媛万方数据