在线考试系统的安全性研究

2016-10-21 06:35曾凡锋孙亮
电子技术与软件工程 2016年5期
关键词:在线考试身份认证安全

曾凡锋 孙亮

摘 要 随着计算机技术的发展,越来越多的高校采用在线考试的方式。同时,在线考试系统的安全性,就愈加的重要。本文主要对在线考试系统的安全性进行了阐述,对该系统的安全性和可靠性进行了论证。希望在深入地探讨和交流中,系统能够得到进一步改进和完善,功能得到提升。

【关键词】安全 在线考试 身份认证 数据库

随着信息化和网络化在高校的迅速发展,也随着高校IT基础建设的不断加强,无纸化考试成为一种最新趋势,逐步代替传统的纸质化考试。由于Web自身存在的安全性问题,以及web系统开发人员对安全问题的疏忽,导致系统极易受到黑客的攻击或被黑客篡改了数据,导致系统崩溃或其他问题。本文就基于Web系统安全机制方面的问题进行了分析,Web系统的安全性除了受Web应用程序设计的影响,还包括运行Web应用程序的操作系统及数据库等因素的影响。

1 访问控制

在线考试系统的数据库服务器采用Mysql,后台包含了与考试相关的各种数据,包括用户信息、试题信息、组卷方案信息、成绩信息等。除了采用Mysql与Windows 相结合的方式登录数据库服务器来实现安全性的身份验证方式以外,还根据不同用户权限的设定和划分,避免使得用户在使用时获取到身份不相符权限,或者页面缺少身份验证,用户不经身份验证就打开相应的页面等问题。不同类别用户的功能确定不同的操作对象和操作级别,从源头保证数据操作的安全。通过建立角色,将访问许可集中授予角色,之后将需要拥有这一许可的用户加到角色中,这些用户即继承角色的访问许可。需要撤销用户的访问许可时,将用户从角色中删除即可。

本系统中,有三种用户角色,分别为管理员、教师、学生,其有各自权限:

(1)管理员权限:可以对教师、学生、试题信息进行增删改查。

(2)教师权限:组卷管理,查看学生信息(包括每个学生的试卷信息)。

(3)学生权限:考试,查询成绩。

2 程序设计问题漏洞

不管Web程序设计基于哪种语言或脚本,因使用语言或脚本本身就有部分缺陷导致产生安全漏洞,比如对特殊字符的判断或者会话管理漏洞等。例如在php中的“cookie会话”漏洞,入侵者自己在URL中创造一个假的会话标识(ID),并将其提交给服务器,服务器被欺骗以为会话是合法的,会创建一个会话。这个漏洞使得攻击者可以窃取会话并装扮成一个合法用户自由访问程序。

我们需要对特殊字符进行转义,代码如下:

if (!function_exists('func_safe')) {

function func_safe($data, $ignore_magic_quotes = false) {

if (is_string($data)) {

$data = trim(htmlspecialchars($data)); //防止被掛马,跨站攻击

if (($ignore_magic_quotes == true) || (!get_magic_quotes_gpc())) {

$data = addslashes($data); //防止sql注入

}

return $data;

} else if (is_array($data)) //如果是数组采用递归过滤

{

foreach ($data as $key => $value) {

$data[$key] = func_safe($value);

}

return $data;

} else {

return $data;

}

}

}

3 脚本语言等恶意代码的防范

恶意代码不同于网络病毒,虽然它的破坏力和对系统造成的损害没有病毒和木马程序那么大,但对系统的稳定运行而言依然是必须根除的隐患。网络考试平台系统特别要注意防范这一类的安全性问题,所以相关的系统安全设置是必须的,有一类安全漏洞对于系统管理员来讲是很常见的,那就是系统中的复制功能。客户端的用户可以通过鼠标的右键来查看相关页面的属性,从而获取系统的部分源代码,这对于服务器的安全稳定是非常有害的,所以必须通过相关手段禁止使用鼠标右键。

采用JavaScript脚本语言来取消右键、中键功能并通过伪静态技术隐藏源代码的示例如下:

function whichButton(e){

var ev = window.event || e;

var code = ev.keyCode || ev.which;

var btnNum = ev.button;

if (btnNum==2){

alert("禁止鼠标右键!");

ev.preventDefault();

ev.returnValue = false;

} else if(btnNum==1){

alert("禁止鼠标中键!");

ev.preventDefault();

ev.returnValue = false;

}

}

4 通信的安全性

为保证试卷等数据在传输过程中的安全,确保私有性和保密性,不会被可能使用网络监控软件的窃听者查看到,系统采用SSL加密传输。SSL是一个用来保证文件安全传输的协议,可以在服务器和客户机之间建立一条安全通道,从而实现在Internet中传输保密数据。在TCP协议族中,SSL位于TCP层之上、应用层之下。这使它可以独立于应用层,从而使应用层协议(诸如http)可以直接建立在SSL上。SSL协议由SSL记录协议和SSL握手协议两部分组成:SSL记录协议建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持;SSL握手协议建立在SSL记录协议之上,用于在实际的数据传输开始前通信双方进行身份认证(协商加密算法、交换加密密钥等)。

5 结束语

保证系统的安全稳定运行是一切工作的基础。由于网络本身的原因,给在线考试的安全和管理带来了潜在的威胁。本文针对在线考试系统数据安全性要求较高的特点,在系统中采用了多层次的安全技术,并以案例验证了策略方法的可行性和有效性。

参考文献

[1]马玉芳.浅析Web服务器安全策略[J].信息安全与技术,2014(6).

[2]王重英,李艳,卢琼.基于Web架构模式的安全性能分析与研究[J].信息技术,2014(9).

[3]谭前进,赵前程.Web系统安全威胁研究[J].洛阳师范学院学报,2014(2).

作者简介

曾凡锋,现为北方工业大学计算机学院副教授。研究方向为信息安全。

作者单位

北方工业大学计算机学院 北京市 100144

猜你喜欢
在线考试身份认证安全
基于Java的考场管理系统的研究与实现
校园网云盘系统存在的安全问题及对策
大学物理在线考试与分析系统
基于指纹身份认证的固定通信台站干部跟班管理系统设计
效率观下高校课程考试形式的改革探索
Kerberos身份认证协议的改进
基于USB存储设备的透明监控系统
大数据背景下在线评教与在线考试融合的思路探讨