罗云芳 唐运乐
摘要:职业院校技能大赛整个生命周期的各项管理复杂,人工管理的方式已不能满足赛事组织的规范、准确管理,该文利用现代信息化手段设计开发职业院校技能大赛信息系统,基于不同的用户角色,分配不同的用户权限管理功能。系统经测试表明,能实现大赛生命周期过程各工作的信息化管理,有效提高了大赛信息化管理的水平。
关键词:Bootstrap前端框架; SQL注入式攻击;角色用户;权限功能
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)13-0085-04
1 背景
随着计算机技术、网络技术和通信技术的发展普及,信息管理系统的使用得到快速发展,信息管理系统已应用于各个领域,利用信息管理系统实现各项管理工作的数字化、信息化,有效提高管理工作效率和工作管理水平。目前国家职业院校技能大赛和相关省份的职业院校技能大赛管理工作已经采用信息化管理系统实现信息化管理,而某区职业院校技能大赛管理工作,当前还采用人工方式进行信息采集和上报。这种管理方式存在周期长、效率低,容易发生人为差错,比赛资料存档困难,管理流程不规范等问题,不适应当今信息化的发展趋势,已严重制约了技能大赛组织管理和长期规范的发展。因此需要设计开发某区职业院校技能大赛管理系统,实现赛项的征集、赛项发布、裁判报名、赛项承办、大赛报名和成绩管理等职业院校技能大赛整个生命周期过程的信息化管理,提高技能大赛管理工作效率。同时形成历年大赛信息数据库,为对历年大赛各项数据的分析提供数据支撑,进一步优化大赛的管理工作和发展大赛。
2 系统整体实现架构
2.1 系统开发平台选型
该职业院校技能大赛信息管理系统面对全区的职业院校用户和相关主管部门用户,用户分散,因此系统开发技术选型基于B/S架构实现,开发平台采用WAMP。WAMP是以Windows为操作系统,Apache为Web服务器,Mysql为系统后台数据库,PHP为系统开发语言。为提高系统的开发效率、可扩展性和可维护性,系统采用ThinkPHP开发框架,按MVC软件设计模式进行开发实现。ThinkPHP开发框架是按MVC设计模式开发实现的面向对象的轻量级PHP开发框架,是针对敏捷WEB应用开发而诞生的。基于ThinkPHP框架进行Web开发可以有效减少核心依赖,使用系统扩展更灵活、方便。同时ThinkPHP框架具有出色的性能和REST支持,更好的支持API开发。ThinkPHP框架重构了数据库、模型及关联,使Web应用开发更高效,数据处理更安全。
2.2 涉及关键技术
1)防SQL注入式攻击:
某区职业院校技能大赛信息管理系统中数据非常重要且涉密,必须尽可能保障系统的数据安全,而当前互联网上黑客盛行,Web系统被攻击入侵是常事,因此,做好系统的入侵检测,特别是防止非法人员利用SQL注入式攻击入侵系统是非常必要的。
SQL注入式攻击指的是利用SQL语法,针对应用程序开发者编程过程中的漏洞非法入侵系统。
解决SQL注入主要方法是根据对数据库入侵的特点,归结为对用户可以控制输入的任何数据在服务器端进行特殊字符过滤。同时为了更好地避免系统被SQL注入攻击,可以采用存储过程可靠的方式实现系统数据操作。防SQL注入攻击进行特殊字符过滤主要包括:对前台传入参数按的数据类型,进行严格匹配;对于单一变量,过滤或替换掉输入数据中的空格;将一个单引号(“'”),替换成两个连续的单引号(“''”);限制输入数据的有效字符种类,排除对数据库操作有特殊意义的字符;限制表单或查询字符串输入的长度;用存储过程来执行所有的查询;检查提取数据的查询所返回的记录数量;将用户登录名称、密码等数据加密保存。
总之,就是要尽可能地限制用户可以存取系统的数据总数。另外,对系统用户按“最小特权”安全原则分配权限,即使发生了SQL注入攻击,结果也被限制在那些可以被正常访问到的数据中。
2)Bootstrap前端框架:
该职业院校技能大赛信息管理系统需要友好的操作界面和良好的用户体验,基于原始HTML很难实现良好的用户交互,利用原始JavaScript实现又较为复杂。因此,采用Bootstrap前端开发框架实现。Bootstrap是一款基于 HTML、CSS、JavaScript 的,能有效提高 Web 开发效率的前端开发框架。Bootstrap不仅提供了优雅的HTML和CSS规范,Bootstrap还使用LESS CSS并用Node编译,托管在GitHub上,方便开发者使用框架构建更好的Web应用。同时Bootstrap具有12列的响应式栅格结构、豐富的组件、JavaScript插件、排版、表单控件,还有基于Web的定制工具,开发者利用Bootstrap前端开发框架,可以快速开发出丰富的前端应用。
2.3 系统实现整体架构
该职业院校技能大赛信息管理系统包括基础层、数据层、支撑层、应用层和展现层。基础层提供系统运行所需的网络环境,服务器环境和数据库等环境。数据层是在基础层提供的数据环境中构建的存储该系统所需处理的数据库和相应的数据表,实现对该系统的数据存储管理。支撑层是利用智能表单处理中间件,报表分析中间件和工作流引擎,实现对系统表单数据的智能分析处理,报表数据的分析统计处理和报名工作流的数据处理,为应用层提供支撑服务。应用层是该系统实现的对职业院校技能大赛整个生命周期工作信息化管理的功能。展现层则是系统展现给用户的功能操作界面,是用户与系统交互的接口。系统实现整体架构如图1所示。
3 系统整体功能设计
3.1 系统整体功能设计
系统功能主要分为基础功能和业务功能两大模块。基础功能主要包括用户管理、角色权限分配管理、机构管理、智能报表处理逻辑层、数据字典管理和表单配置等功能。主要实现系统用户及用户角色权限管理,系统数据库及数据表的动态管理,系统功能菜单的动态管理和系统报表数据的智能处理及报表结构的动态配置管理,为业务功能的实现提供后台的逻辑处理功能实现。业务功能包括赛项征集管理、赛项发布管理、裁判员信息管理、赛项承办学校管理、大赛报名管理和成绩管理。业务功能实现职业院校技能大赛从赛项征集,比赛项目的发布,裁判和承办校的管理,报名管理和成绩管理整个生命周期工作的信息化。系统整体功能结构如果2所示。
3.2 用户及权限设计
根据系统的业务功能该系统用户明确,主要包括系统管理员、参赛学校、承办学校、地市教育局、裁判长和省厅六类用户。
系统管理员用户角色主要实现赛项信息管理、用户信息管理、权限信息管理和用户权限修改;省厅用户角色主要实现查看赛项征集结果,特色赛项审批,承办校审批和裁判长信息的征集和确认;参赛学校用户角色主要实现学校基本信息管理,参加竞赛报名信息填报,特色赛项申报,报名信息审核查询,特色赛项申报结果查询等;地市教育局用户角色主要实现审核各参赛学校的报名信息,统计查询本市各赛项的报名进度,打印地市各赛项的报名汇总信息;承办学校用户角色主要实现查看承办赛项报名进度,向省厅提交最终赛项报名信息,打印承办赛项报名汇总,导出承办赛项报名信息和承办赛项比赛成绩的录入等功能,系统用户及权限功能如图3所示。通过各用户角色功能实现系统的业务功能,实现职业院校技能大赛各项工作的信息化管理。
4 系统角色功能实现
4.1 赛项征集与发布功能实现
省厅角色用户发布拟设赛项意见集征填报表,学校角色用户根据自己学校意愿参赛项目进行选择填报,如果还需要申报与行业发展紧密相关的特色赛项,可以根据发布提供的模板进行填报申请。拟设赛项征集时间结束,省厅角色用户利用系统自动汇总统计功能,统计征集结果后,公布开设的比赛赛项,基于省厅用户和学校用户角色的赛项征集和发布功能实现流程如图4所示。
4.2 赛项承办申请功能实现
省厅发布比赛赛项后,拟承办学校角色用户在规定的申报时间内,填报赛项承办申报表,如果申请承办的赛项是区直比赛项目,直接上报给省厅角色用户进行承办申请审核,否则非区直比赛项目提交地市教育局角色用户审核后,由地市教育局角色用户上报省厅角色用户进行最终承办申请审核。省厅审核结束后公布各赛项的承办学校。基于角色用户的赛项承办申请功能实现流程如图5所示。
4.3 大赛报名管理功能实现
省厅发布比赛赛项后,在报名参加比赛规定的时间内,参赛学校角色用户按要求填报参赛报名表和提交相关报名材料后,如果是区直比赛项目,直接提交给省厅角色用户进行报名信息审核,否则非区直比赛项目提交地市教育局角色用户审核后,由地市教育局角色用户上报省厅角色用户进行最终报名信息审核,省厅角色用户审核后完成大赛报名流程。在报名信息提交后,学校角色用户可以查询报名信息审核进度。基于角色用户的大赛报名功能实现流程如图6所示。
4.4 成绩管理功能实现
各项比赛结束后,裁判组判分完毕后,裁判长将比赛成绩录入到赛项成绩库,省厅角色用户对各赛项成绩进行统计汇总,排名和颁布获奖等级,同时省厅角色用户还可以查询和修改成绩。学校和地市教育局角色用户可以查询省厅公布的比赛成绩。基于角色用户的成绩管理功能实现流程如图7所示。
5 系统测试
5.1 功能测试
对系统进行功能测试,目的是检测系统是否满足项目的功能需求。该系统功能较多,在此以大赛报名功能为例。参赛学校角色用户点击需要报名参赛项目后面的报名按钮,进入大赛报名信息填报功能界面,在界面中按要求填写报名信息和上传相关报名材料附件后,点击提交按钮确认提交成功后,可以将报名信息提交到上级部门审核,同时可在已报名信息中查询到报名成功的信息,在查询报名进度中查询到报名信息上级部门审核进度。通过测试,大赛报名功能完全符合系统功能需求。大赛报名信息填报功能界面如图8所示。
5.2 SQL注入攻击测试
系统入口需要验证用户名和密码,只有输入正确的用户名和密码,才能登录系统使用系统功能,为测试系统是否能有效防SQL注入式攻击,在如图9所示的系统登录界面填写用户名和密码: ‘admin or ‘1=‘1条件永真式的SQL语句进行系统登录,系统能正确的提示密码错误,不能成功登录进入系统。测试表明,系统能有效地防SQL注入攻击。
6 结束语
采用WAMP开发平台,采用ThinkPHP开发框架,按MVC软件设计模式进行开发实现的基于角色管理的职业院校技能大赛信息管理系统。经测试表明,实现了赛项的征集、赛项发布、裁判报名、赛项承办、大赛报名和成绩管理等职业院校技能大赛整个生命周期过程的信息化管理。同时系统在开发过程中严格遵循web安全规范,利用前后台双重验证、参数编码传输、密码md5加密存储和shiro权限验证等方式,从根本上避免了SQL注入、XSS攻击和CSRF攻击等常见的web攻击,有效保障系统数据安全。
参考文献:
[1] 张慧琳, 丁羽, 张利华, 等. 基于敏感字符的SQL注入攻击防御方法[J]. 计算机研究与发展, 2016, 53(10): 2262-2276.
[2] 季嘉明. 基于Bootstrap+SSI的跨平台企业管理系统的设计与实现[D]. 上海: 东华大学, 2015.
[3] 韦存堂. SQL注入与XSS攻击自动化检测关键技术研究[D]. 北京: 北京邮电大学, 2015.
[4] 王俊芳, 李隐峰, 王池. 基于MVC模式的ThinkPHP框架研究[J]. 电子科技, 2014, 27(4): 151-153, 158.
[5] 杨玉龙, 彭长根, 周洲. 基于同态加密的防止SQL注入攻击解决方案[J]. 信息网络安全, 2014(1): 30-33.
[6] 李蘭崇. 基于角色的权限管理访问控制系统平台研究与实践[D]. 兰州: 兰州大学, 2009.
[7] 张雷. 扩展RBAC模型在WEB应用中的研究与实现[D]. 北京: 北京交通大学, 2008.
[8] 韦艳丽, 赵腾亚, 杨亚荣. 基于用户角色模型的高校科研转移系统研究[J]. 合肥工业大学学报: 社会科学版, 2016, 30(2): 134-138.
[9] 任广震, 侯进, 王献. MVC模式在B/S结构政务系统的应用研究[J]. 计算机应用与软件, 2014, 31(8): 54-58, 74.
[10] 田伟. 模型驱动的web应用SQL注入安全漏洞渗透测试研究[D]. 天津: 南开大学, 2012.
[11] 范小康, 何连跃, 王晓川, 等. 一种基于RBAC模型的角色管理方法[J]. 计算机研究与发展, 2012, 49(S1): 211-215.
[12] 王欣. WEB应用系统安全检测关键技术研究[D]. 北京: 北京邮电大学, 2011.
[13] 戴一平. MVC设计模式在PHP开发中的应用[J]. 计算机与现代化, 2011(3): 33-37, 43.
[14] 吴卫平, 王丽芳, 蒋泽军. 基于ORM的数据持久层框架研究[J]. 微电子学与计算机, 2008(7): 188-190, 193.
[15] 周杨. 浅议SQL注入攻击的原理及防御[J]. 实验技术与管理, 2007(10): 85-87, 170.
[16] 李威, 李晓红. Web应用存储型XSS漏洞检测方法及实现[J]. 计算机应用与软件, 2016, 33(1): 24-27, 37.
[17] 韦存堂. SQL注入与XSS攻击自动化检测关键技术研究[D]. 北京: 北京邮电大学, 2015.