郑歆
(福建农林大学软件工程学院,福建 福州 350002)
当今社会是一个信息化的社会,信息技术的飞速发展,为生产和生活带来了极大的便利。高校学生成绩管理是一项重要但又工作量大、容易出错的工作。在教务管理网络化的趋势下,如何提高成绩管理的时效性,方便教师录入成绩、学生查询成绩;如何保证学生成绩的真实性,防止非法用户录入或者篡改学生成绩;如何保证成绩录入的不可否认性,都成为了学生成绩管理系统在使用时亟待解决的问题。为此,设计具有安全子系统的学生成绩管理系统具有一定的现实意义,能够有效减少劳动力的使用,提高工作效率,加快查询速度,加强安全管理。
根据前期对系统需求的调查与分析,以及系统的工作特点,学生成绩管理系统采用基于B/S模型的三层体系结构,以M icrosoft SQL Server 2005为数据库平台,进行Web应用系统的开发。Web服务器使用M icrosoft Windows Server 2003操作系统,并安装IIS(互联网信息服务)组件,从而实现客户端浏览器与数据库服务器之间的信息交互。
学生成绩管理系统按其功能需求划分为6个模块,包括:用户登录、用户管理、基本信息管理、成绩管理、成绩查询和安全子系统,每个模块完成特定的、与成绩管理相关的功能,如图1所示。
图1 系统功能模块图
(1)用户登录
所有用户均必须通过本模块登录系统,按分配到的操作权限进行相关操作,以防止用户进行非授权操作。同时采用随机生成验证码的方式,防止入侵者暴力破解密码。
(2)用户管理
本模块分成了角色管理、教师管理、学生管理和修改密码4个子模块,主要用于维护角色、教师、学生等的基本信息,包括登录本系统使用的用户名、密码、所属角色权限,以及相关的基本信息。
(3)基本信息管理
本模块分成了专业管理、班级管理、课程管理3个子模块,主要用于维护与成绩相关的专业、班级、课程等基本信息。
(4)成绩管理
本模块是学生成绩管理系统的核心模块,分为录入成绩、修改成绩、审核成绩和查询成绩4个子模块。
在课程结束后,任课教师可以通过录入成绩子模块输入学期信息,并选择要录入成绩的课程和班级。然后由系统根据选中的班级信息,从数据库表中查询并返回该班级的学生名单,以二维表形式显示,以方便教师录入成绩。操作页面如图2所示。
如果发现提交的成绩填写错误,任课教师还可以在成绩审核前通过修改成绩子模块修改学生成绩。
教务人员对任课教师提交的成绩进行审核,确保成绩的正确、有效。同时还提供成绩查询的功能。
(5)成绩查询
成绩查询分为学生查询和教师查询2个子模块,为学生和教师在线查询成绩提供便利。
(6)安全子系统
本模块主要用于解决系统中可能存在的各种安全问题,从而在一定程度上提高系统的安全性。
在学生成绩管理系统的安全子系统中,主要通过可靠的身份认证与访问权限控制,以及数据加密等方法,提高系统的安全性。本子系统共分为5个子模块:身份认证、访问控制、数据加密、防止恶意攻击和日志管理,如图3所示。
图3 安全子系统模块结构图
本模块为用户的身份提供验证功能,只有成功通过身份认证的用户才能登录系统,从而防止非法用户进入系统。
身份认证是许多应用系统的第一道防线,也是实施访问控制的依据。其目的在于验证用户身份是否合法,阻止非法用户进入系统,获取合法用户的身份信息,从而为能够正确实施访问控制策略提供保证[1]。
根据本系统的使用特点,采用简单易行的用户名/密码认证方式。由用户自己设定容易记忆的密码,通常是由数字、字母、特殊字符等组成具有一定长度的字符串。
在信息系统中,访问控制是在用户通过身份认证后保护系统资源安全的第二道屏障。它的主要任务是在用户最大限度共享系统资源的基础上,管理用户的访问权限,防止用户对信息的越权访问、篡改和滥用。它为经过身份认证后的合法用户提供所需要的并且是经过授权的服务,拒绝用户越权的服务请求,使用户在系统的管理策略下有序地工作[1]。
根据访问控制策略的不同,目前主要有自主访问控制、强制访问控制、基于角色的访问控制这三种访问控制模型被广泛应用[2]。
自主访问控制(Discretionary Access Control,DAC)是指作为某个客体的拥有者的主体能够将对该客体的全部或部分访问权限自主地授予其他主体,并且可以在随后的任何时刻撤销这些授权[3]。这种访问控制模型为用户提供了灵活的访问控制机制,但由于用户可以任意地将所拥有的权限直接或间接的授予其他用户,因此容易产生安全漏洞,安全性不高。
强制访问控制(Mandatory Access Control,MAC)指的是在访问发生以前,由系统事先为一个主体进行授权,决定该主体可以对哪些客体进行访问以及能够进行什么样的访问。强制访问控制机制不仅能阻止对系统的恶意攻击,也可以防止由于程序错误或用户的误操作所引起的泄露和破坏,但缺点是访问控制规则必须预先设定,灵活性差。
基于角色的访问控制 (Role-Based Access Control,RBAC)是指在一个组织机构中,系统按照工作岗位的不同创建角色,为每个角色分配对应的操作权限,然后再根据用户在组织机构中担任的职务为其指派相应的角色。用户通过所分配到的角色获得相应的操作权限,实现对信息资源的访问[4]。基于角色的访问控制大大降低了权限管理的复杂度,减少了管理开销。
通过对上述3种访问控制模型的分析比较,本系统决定采用基于角色的访问控制模型对用户权限进行管理。
基本的实现策略是:首先,将系统中的所有模块与子模块按照功能层次进行排列,生成一棵系统功能权限树。其次,由系统管理员按照各个岗位职责的划分创建各种类型的角色,主要包括系统管理员、学工人员、教务人员、任课教师和学生等。再次,为每种角色分配相应的操作权限,如图4所示。例如:系统管理员只能操作用户管理中的角色管理与教师管理,学工人员可以对用户管理中的学生信息和基础信息管理中的班级管理进行操作,教务人员能够操作基础信息管理中的专业管理、课程管理以及成绩管理中的审核成绩、查询成绩,任课教师仅能对成绩管理中的录入成绩、修改成绩以及成绩查询中的教师查询进行操作,而学生这一角色只能进行学生成绩的查询;最后,根据用户的工作职责,为每个用户赋予相应的角色,各个用户通过被指派的角色获得相应的操作权限,完成对整个系统的操作权限控制。
图4 添加角色权限操作页面
用户密码是用户登录系统进行身份验证的重要依据。如果在数据库中以明文形式保存用户密码,一旦数据库泄露,用户密码将一览无余,入侵者可以假冒系统中任意一个合法用户的身份进行非法操作,将产生无法想象的严重后果。为了提高用户密码的安全性,本系统将使用MD5算法对用户设置的密码M进行加密,将产生的密文M’存入数据库表中。当用户登录系统进行身份验证时,将用户输入的密码P同样以MD5算法加密,将得到的密文P’与数据库表中记录的密码M’进行比较。如果P’与M’相符,则身份验证成功;否则,验证失败,拒绝用户登录系统。这样即使有人非法进入数据库,由于MD5算法的不可逆性,依然无法查看到真正的用户密码,从而有效地避免了用户密码的泄露。
在网站中,一些恶意攻击者常常通过编写自动登录程序,重复登录暴力破解密码。因此本系统在用户登录时,还要求用户输入验证码。验证码就是将一串随机字符显示在一张图片上,并在图片上产生一些干扰因素(如线条等)。在大多数情况下,攻击者的自动登录程序无法识别图片中的验证码信息,而用户却能够正确识别该验证码字符串,从而在一定程度上对这种恶意攻击起到了阻挡作用。
为了帮助系统管理员了解整个系统的用户使用情况,本系统将用户的登录信息以日志的形式写入到一个文本文件中并保存下来。除了记录成功通过身份验证的用户登录信息,还需要记录那些试图非法登录的用户信息,以协助系统管理员及时发现问题并采取有效的应对措施。
系统测试的主要目的是为了发现学生成绩管理系统潜在的各种错误和缺陷。根据系统需求与设计方案精心设计测试用例,对系统功能、性能、用户界面等方面的进行测试。
经过测试发现,本系统界面友好,操作容易,安全性较高,服务器端、客户端系统运行稳定,已经完全实现了对学生成绩的有效管理。
本文设计的学生成绩管理系统是针对学生成绩管理工作中存在的工作效率低、数据保密性差等问题提出的无纸化办公解决方案。通过本系统的使用,为学院的学生成绩管理工作提供有利的帮助,使教师和学生能够不受时间、地点的限制,快速、方便地录入或查询成绩;引入身份认证与基于角色的访问控制机制,通过角色将操作权限分配给用户,防止未授权用户进行非法操作;对敏感数据使用加密算法进行加密处理,防止信息泄露;将用户登录信息写入日志文件,帮助系统管理员及时发现问题并采取有效的应对措施。
[1]洪帆.访问控制概论[M].武汉:华中科技大学出版社,2010,(8):20~28.
[2]刘宏月,范九伦,马建峰.访问控制技术研究进展[J].小型微型计算机系统.2004,25(1):56~59.
[3]RaviSandhu,QamarMunawer.How to do discretionary accesscontrolusing roles[A].3th ACM workshop on RBAC.1998:47~54.
[4]洪帆,何绪斌,徐智勇.基于角色的访问控制[J].小型微型计算机系统.2000,21(2):198~200.