羅云芳 唐運(yùn)樂(lè)
摘要:職業(yè)院校技能大賽整個(gè)生命周期的各項(xiàng)管理復(fù)雜,人工管理的方式已不能滿(mǎn)足賽事組織的規(guī)范、準(zhǔn)確管理,該文利用現(xiàn)代信息化手段設(shè)計(jì)開(kāi)發(fā)職業(yè)院校技能大賽信息系統(tǒng),基于不同的用戶(hù)角色,分配不同的用戶(hù)權(quán)限管理功能。系統(tǒng)經(jīng)測(cè)試表明,能實(shí)現(xiàn)大賽生命周期過(guò)程各工作的信息化管理,有效提高了大賽信息化管理的水平。
關(guān)鍵詞:Bootstrap前端框架; SQL注入式攻擊;角色用戶(hù);權(quán)限功能
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)13-0085-04
1 背景
隨著計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)和通信技術(shù)的發(fā)展普及,信息管理系統(tǒng)的使用得到快速發(fā)展,信息管理系統(tǒng)已應(yīng)用于各個(gè)領(lǐng)域,利用信息管理系統(tǒng)實(shí)現(xiàn)各項(xiàng)管理工作的數(shù)字化、信息化,有效提高管理工作效率和工作管理水平。目前國(guó)家職業(yè)院校技能大賽和相關(guān)省份的職業(yè)院校技能大賽管理工作已經(jīng)采用信息化管理系統(tǒng)實(shí)現(xiàn)信息化管理,而某區(qū)職業(yè)院校技能大賽管理工作,當(dāng)前還采用人工方式進(jìn)行信息采集和上報(bào)。這種管理方式存在周期長(zhǎng)、效率低,容易發(fā)生人為差錯(cuò),比賽資料存檔困難,管理流程不規(guī)范等問(wèn)題,不適應(yīng)當(dāng)今信息化的發(fā)展趨勢(shì),已嚴(yán)重制約了技能大賽組織管理和長(zhǎng)期規(guī)范的發(fā)展。因此需要設(shè)計(jì)開(kāi)發(fā)某區(qū)職業(yè)院校技能大賽管理系統(tǒng),實(shí)現(xiàn)賽項(xiàng)的征集、賽項(xiàng)發(fā)布、裁判報(bào)名、賽項(xiàng)承辦、大賽報(bào)名和成績(jī)管理等職業(yè)院校技能大賽整個(gè)生命周期過(guò)程的信息化管理,提高技能大賽管理工作效率。同時(shí)形成歷年大賽信息數(shù)據(jù)庫(kù),為對(duì)歷年大賽各項(xiàng)數(shù)據(jù)的分析提供數(shù)據(jù)支撐,進(jìn)一步優(yōu)化大賽的管理工作和發(fā)展大賽。
2 系統(tǒng)整體實(shí)現(xiàn)架構(gòu)
2.1 系統(tǒng)開(kāi)發(fā)平臺(tái)選型
該職業(yè)院校技能大賽信息管理系統(tǒng)面對(duì)全區(qū)的職業(yè)院校用戶(hù)和相關(guān)主管部門(mén)用戶(hù),用戶(hù)分散,因此系統(tǒng)開(kāi)發(fā)技術(shù)選型基于B/S架構(gòu)實(shí)現(xiàn),開(kāi)發(fā)平臺(tái)采用WAMP。WAMP是以Windows為操作系統(tǒng),Apache為Web服務(wù)器,Mysql為系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù),PHP為系統(tǒng)開(kāi)發(fā)語(yǔ)言。為提高系統(tǒng)的開(kāi)發(fā)效率、可擴(kuò)展性和可維護(hù)性,系統(tǒng)采用ThinkPHP開(kāi)發(fā)框架,按MVC軟件設(shè)計(jì)模式進(jìn)行開(kāi)發(fā)實(shí)現(xiàn)。ThinkPHP開(kāi)發(fā)框架是按MVC設(shè)計(jì)模式開(kāi)發(fā)實(shí)現(xiàn)的面向?qū)ο蟮妮p量級(jí)PHP開(kāi)發(fā)框架,是針對(duì)敏捷WEB應(yīng)用開(kāi)發(fā)而誕生的。基于ThinkPHP框架進(jìn)行Web開(kāi)發(fā)可以有效減少核心依賴(lài),使用系統(tǒng)擴(kuò)展更靈活、方便。同時(shí)ThinkPHP框架具有出色的性能和REST支持,更好的支持API開(kāi)發(fā)。ThinkPHP框架重構(gòu)了數(shù)據(jù)庫(kù)、模型及關(guān)聯(lián),使Web應(yīng)用開(kāi)發(fā)更高效,數(shù)據(jù)處理更安全。
2.2 涉及關(guān)鍵技術(shù)
1)防SQL注入式攻擊:
某區(qū)職業(yè)院校技能大賽信息管理系統(tǒng)中數(shù)據(jù)非常重要且涉密,必須盡可能保障系統(tǒng)的數(shù)據(jù)安全,而當(dāng)前互聯(lián)網(wǎng)上黑客盛行,Web系統(tǒng)被攻擊入侵是常事,因此,做好系統(tǒng)的入侵檢測(cè),特別是防止非法人員利用SQL注入式攻擊入侵系統(tǒng)是非常必要的。
SQL注入式攻擊指的是利用SQL語(yǔ)法,針對(duì)應(yīng)用程序開(kāi)發(fā)者編程過(guò)程中的漏洞非法入侵系統(tǒng)。
解決SQL注入主要方法是根據(jù)對(duì)數(shù)據(jù)庫(kù)入侵的特點(diǎn),歸結(jié)為對(duì)用戶(hù)可以控制輸入的任何數(shù)據(jù)在服務(wù)器端進(jìn)行特殊字符過(guò)濾。同時(shí)為了更好地避免系統(tǒng)被SQL注入攻擊,可以采用存儲(chǔ)過(guò)程可靠的方式實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)操作。防SQL注入攻擊進(jìn)行特殊字符過(guò)濾主要包括:對(duì)前臺(tái)傳入?yún)?shù)按的數(shù)據(jù)類(lèi)型,進(jìn)行嚴(yán)格匹配;對(duì)于單一變量,過(guò)濾或替換掉輸入數(shù)據(jù)中的空格;將一個(gè)單引號(hào)(“'”),替換成兩個(gè)連續(xù)的單引號(hào)(“''”);限制輸入數(shù)據(jù)的有效字符種類(lèi),排除對(duì)數(shù)據(jù)庫(kù)操作有特殊意義的字符;限制表單或查詢(xún)字符串輸入的長(zhǎng)度;用存儲(chǔ)過(guò)程來(lái)執(zhí)行所有的查詢(xún);檢查提取數(shù)據(jù)的查詢(xún)所返回的記錄數(shù)量;將用戶(hù)登錄名稱(chēng)、密碼等數(shù)據(jù)加密保存。
總之,就是要盡可能地限制用戶(hù)可以存取系統(tǒng)的數(shù)據(jù)總數(shù)。另外,對(duì)系統(tǒng)用戶(hù)按“最小特權(quán)”安全原則分配權(quán)限,即使發(fā)生了SQL注入攻擊,結(jié)果也被限制在那些可以被正常訪問(wèn)到的數(shù)據(jù)中。
2)Bootstrap前端框架:
該職業(yè)院校技能大賽信息管理系統(tǒng)需要友好的操作界面和良好的用戶(hù)體驗(yàn),基于原始HTML很難實(shí)現(xiàn)良好的用戶(hù)交互,利用原始JavaScript實(shí)現(xiàn)又較為復(fù)雜。因此,采用Bootstrap前端開(kāi)發(fā)框架實(shí)現(xiàn)。Bootstrap是一款基于 HTML、CSS、JavaScript 的,能有效提高 Web 開(kāi)發(fā)效率的前端開(kāi)發(fā)框架。Bootstrap不僅提供了優(yōu)雅的HTML和CSS規(guī)范,Bootstrap還使用LESS CSS并用Node編譯,托管在GitHub上,方便開(kāi)發(fā)者使用框架構(gòu)建更好的Web應(yīng)用。同時(shí)Bootstrap具有12列的響應(yīng)式柵格結(jié)構(gòu)、豐富的組件、JavaScript插件、排版、表單控件,還有基于Web的定制工具,開(kāi)發(fā)者利用Bootstrap前端開(kāi)發(fā)框架,可以快速開(kāi)發(fā)出豐富的前端應(yīng)用。
2.3 系統(tǒng)實(shí)現(xiàn)整體架構(gòu)
該職業(yè)院校技能大賽信息管理系統(tǒng)包括基礎(chǔ)層、數(shù)據(jù)層、支撐層、應(yīng)用層和展現(xiàn)層?;A(chǔ)層提供系統(tǒng)運(yùn)行所需的網(wǎng)絡(luò)環(huán)境,服務(wù)器環(huán)境和數(shù)據(jù)庫(kù)等環(huán)境。數(shù)據(jù)層是在基礎(chǔ)層提供的數(shù)據(jù)環(huán)境中構(gòu)建的存儲(chǔ)該系統(tǒng)所需處理的數(shù)據(jù)庫(kù)和相應(yīng)的數(shù)據(jù)表,實(shí)現(xiàn)對(duì)該系統(tǒng)的數(shù)據(jù)存儲(chǔ)管理。支撐層是利用智能表單處理中間件,報(bào)表分析中間件和工作流引擎,實(shí)現(xiàn)對(duì)系統(tǒng)表單數(shù)據(jù)的智能分析處理,報(bào)表數(shù)據(jù)的分析統(tǒng)計(jì)處理和報(bào)名工作流的數(shù)據(jù)處理,為應(yīng)用層提供支撐服務(wù)。應(yīng)用層是該系統(tǒng)實(shí)現(xiàn)的對(duì)職業(yè)院校技能大賽整個(gè)生命周期工作信息化管理的功能。展現(xiàn)層則是系統(tǒng)展現(xiàn)給用戶(hù)的功能操作界面,是用戶(hù)與系統(tǒng)交互的接口。系統(tǒng)實(shí)現(xiàn)整體架構(gòu)如圖1所示。
3 系統(tǒng)整體功能設(shè)計(jì)
3.1 系統(tǒng)整體功能設(shè)計(jì)
系統(tǒng)功能主要分為基礎(chǔ)功能和業(yè)務(wù)功能兩大模塊?;A(chǔ)功能主要包括用戶(hù)管理、角色權(quán)限分配管理、機(jī)構(gòu)管理、智能報(bào)表處理邏輯層、數(shù)據(jù)字典管理和表單配置等功能。主要實(shí)現(xiàn)系統(tǒng)用戶(hù)及用戶(hù)角色權(quán)限管理,系統(tǒng)數(shù)據(jù)庫(kù)及數(shù)據(jù)表的動(dòng)態(tài)管理,系統(tǒng)功能菜單的動(dòng)態(tài)管理和系統(tǒng)報(bào)表數(shù)據(jù)的智能處理及報(bào)表結(jié)構(gòu)的動(dòng)態(tài)配置管理,為業(yè)務(wù)功能的實(shí)現(xiàn)提供后臺(tái)的邏輯處理功能實(shí)現(xiàn)。業(yè)務(wù)功能包括賽項(xiàng)征集管理、賽項(xiàng)發(fā)布管理、裁判員信息管理、賽項(xiàng)承辦學(xué)校管理、大賽報(bào)名管理和成績(jī)管理。業(yè)務(wù)功能實(shí)現(xiàn)職業(yè)院校技能大賽從賽項(xiàng)征集,比賽項(xiàng)目的發(fā)布,裁判和承辦校的管理,報(bào)名管理和成績(jī)管理整個(gè)生命周期工作的信息化。系統(tǒng)整體功能結(jié)構(gòu)如果2所示。
3.2 用戶(hù)及權(quán)限設(shè)計(jì)
根據(jù)系統(tǒng)的業(yè)務(wù)功能該系統(tǒng)用戶(hù)明確,主要包括系統(tǒng)管理員、參賽學(xué)校、承辦學(xué)校、地市教育局、裁判長(zhǎng)和省廳六類(lèi)用戶(hù)。
系統(tǒng)管理員用戶(hù)角色主要實(shí)現(xiàn)賽項(xiàng)信息管理、用戶(hù)信息管理、權(quán)限信息管理和用戶(hù)權(quán)限修改;省廳用戶(hù)角色主要實(shí)現(xiàn)查看賽項(xiàng)征集結(jié)果,特色賽項(xiàng)審批,承辦校審批和裁判長(zhǎng)信息的征集和確認(rèn);參賽學(xué)校用戶(hù)角色主要實(shí)現(xiàn)學(xué)校基本信息管理,參加競(jìng)賽報(bào)名信息填報(bào),特色賽項(xiàng)申報(bào),報(bào)名信息審核查詢(xún),特色賽項(xiàng)申報(bào)結(jié)果查詢(xún)等;地市教育局用戶(hù)角色主要實(shí)現(xiàn)審核各參賽學(xué)校的報(bào)名信息,統(tǒng)計(jì)查詢(xún)本市各賽項(xiàng)的報(bào)名進(jìn)度,打印地市各賽項(xiàng)的報(bào)名匯總信息;承辦學(xué)校用戶(hù)角色主要實(shí)現(xiàn)查看承辦賽項(xiàng)報(bào)名進(jìn)度,向省廳提交最終賽項(xiàng)報(bào)名信息,打印承辦賽項(xiàng)報(bào)名匯總,導(dǎo)出承辦賽項(xiàng)報(bào)名信息和承辦賽項(xiàng)比賽成績(jī)的錄入等功能,系統(tǒng)用戶(hù)及權(quán)限功能如圖3所示。通過(guò)各用戶(hù)角色功能實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)功能,實(shí)現(xiàn)職業(yè)院校技能大賽各項(xiàng)工作的信息化管理。
4 系統(tǒng)角色功能實(shí)現(xiàn)
4.1 賽項(xiàng)征集與發(fā)布功能實(shí)現(xiàn)
省廳角色用戶(hù)發(fā)布擬設(shè)賽項(xiàng)意見(jiàn)集征填報(bào)表,學(xué)校角色用戶(hù)根據(jù)自己學(xué)校意愿參賽項(xiàng)目進(jìn)行選擇填報(bào),如果還需要申報(bào)與行業(yè)發(fā)展緊密相關(guān)的特色賽項(xiàng),可以根據(jù)發(fā)布提供的模板進(jìn)行填報(bào)申請(qǐng)。擬設(shè)賽項(xiàng)征集時(shí)間結(jié)束,省廳角色用戶(hù)利用系統(tǒng)自動(dòng)匯總統(tǒng)計(jì)功能,統(tǒng)計(jì)征集結(jié)果后,公布開(kāi)設(shè)的比賽賽項(xiàng),基于省廳用戶(hù)和學(xué)校用戶(hù)角色的賽項(xiàng)征集和發(fā)布功能實(shí)現(xiàn)流程如圖4所示。
4.2 賽項(xiàng)承辦申請(qǐng)功能實(shí)現(xiàn)
省廳發(fā)布比賽賽項(xiàng)后,擬承辦學(xué)校角色用戶(hù)在規(guī)定的申報(bào)時(shí)間內(nèi),填報(bào)賽項(xiàng)承辦申報(bào)表,如果申請(qǐng)承辦的賽項(xiàng)是區(qū)直比賽項(xiàng)目,直接上報(bào)給省廳角色用戶(hù)進(jìn)行承辦申請(qǐng)審核,否則非區(qū)直比賽項(xiàng)目提交地市教育局角色用戶(hù)審核后,由地市教育局角色用戶(hù)上報(bào)省廳角色用戶(hù)進(jìn)行最終承辦申請(qǐng)審核。省廳審核結(jié)束后公布各賽項(xiàng)的承辦學(xué)校?;诮巧脩?hù)的賽項(xiàng)承辦申請(qǐng)功能實(shí)現(xiàn)流程如圖5所示。
4.3 大賽報(bào)名管理功能實(shí)現(xiàn)
省廳發(fā)布比賽賽項(xiàng)后,在報(bào)名參加比賽規(guī)定的時(shí)間內(nèi),參賽學(xué)校角色用戶(hù)按要求填報(bào)參賽報(bào)名表和提交相關(guān)報(bào)名材料后,如果是區(qū)直比賽項(xiàng)目,直接提交給省廳角色用戶(hù)進(jìn)行報(bào)名信息審核,否則非區(qū)直比賽項(xiàng)目提交地市教育局角色用戶(hù)審核后,由地市教育局角色用戶(hù)上報(bào)省廳角色用戶(hù)進(jìn)行最終報(bào)名信息審核,省廳角色用戶(hù)審核后完成大賽報(bào)名流程。在報(bào)名信息提交后,學(xué)校角色用戶(hù)可以查詢(xún)報(bào)名信息審核進(jìn)度?;诮巧脩?hù)的大賽報(bào)名功能實(shí)現(xiàn)流程如圖6所示。
4.4 成績(jī)管理功能實(shí)現(xiàn)
各項(xiàng)比賽結(jié)束后,裁判組判分完畢后,裁判長(zhǎng)將比賽成績(jī)錄入到賽項(xiàng)成績(jī)庫(kù),省廳角色用戶(hù)對(duì)各賽項(xiàng)成績(jī)進(jìn)行統(tǒng)計(jì)匯總,排名和頒布獲獎(jiǎng)等級(jí),同時(shí)省廳角色用戶(hù)還可以查詢(xún)和修改成績(jī)。學(xué)校和地市教育局角色用戶(hù)可以查詢(xún)省廳公布的比賽成績(jī)?;诮巧脩?hù)的成績(jī)管理功能實(shí)現(xiàn)流程如圖7所示。
5 系統(tǒng)測(cè)試
5.1 功能測(cè)試
對(duì)系統(tǒng)進(jìn)行功能測(cè)試,目的是檢測(cè)系統(tǒng)是否滿(mǎn)足項(xiàng)目的功能需求。該系統(tǒng)功能較多,在此以大賽報(bào)名功能為例。參賽學(xué)校角色用戶(hù)點(diǎn)擊需要報(bào)名參賽項(xiàng)目后面的報(bào)名按鈕,進(jìn)入大賽報(bào)名信息填報(bào)功能界面,在界面中按要求填寫(xiě)報(bào)名信息和上傳相關(guān)報(bào)名材料附件后,點(diǎn)擊提交按鈕確認(rèn)提交成功后,可以將報(bào)名信息提交到上級(jí)部門(mén)審核,同時(shí)可在已報(bào)名信息中查詢(xún)到報(bào)名成功的信息,在查詢(xún)報(bào)名進(jìn)度中查詢(xún)到報(bào)名信息上級(jí)部門(mén)審核進(jìn)度。通過(guò)測(cè)試,大賽報(bào)名功能完全符合系統(tǒng)功能需求。大賽報(bào)名信息填報(bào)功能界面如圖8所示。
5.2 SQL注入攻擊測(cè)試
系統(tǒng)入口需要驗(yàn)證用戶(hù)名和密碼,只有輸入正確的用戶(hù)名和密碼,才能登錄系統(tǒng)使用系統(tǒng)功能,為測(cè)試系統(tǒng)是否能有效防SQL注入式攻擊,在如圖9所示的系統(tǒng)登錄界面填寫(xiě)用戶(hù)名和密碼: ‘a(chǎn)dmin or ‘1=‘1條件永真式的SQL語(yǔ)句進(jìn)行系統(tǒng)登錄,系統(tǒng)能正確的提示密碼錯(cuò)誤,不能成功登錄進(jìn)入系統(tǒng)。測(cè)試表明,系統(tǒng)能有效地防SQL注入攻擊。
6 結(jié)束語(yǔ)
采用WAMP開(kāi)發(fā)平臺(tái),采用ThinkPHP開(kāi)發(fā)框架,按MVC軟件設(shè)計(jì)模式進(jìn)行開(kāi)發(fā)實(shí)現(xiàn)的基于角色管理的職業(yè)院校技能大賽信息管理系統(tǒng)。經(jīng)測(cè)試表明,實(shí)現(xiàn)了賽項(xiàng)的征集、賽項(xiàng)發(fā)布、裁判報(bào)名、賽項(xiàng)承辦、大賽報(bào)名和成績(jī)管理等職業(yè)院校技能大賽整個(gè)生命周期過(guò)程的信息化管理。同時(shí)系統(tǒng)在開(kāi)發(fā)過(guò)程中嚴(yán)格遵循web安全規(guī)范,利用前后臺(tái)雙重驗(yàn)證、參數(shù)編碼傳輸、密碼md5加密存儲(chǔ)和shiro權(quán)限驗(yàn)證等方式,從根本上避免了SQL注入、XSS攻擊和CSRF攻擊等常見(jiàn)的web攻擊,有效保障系統(tǒng)數(shù)據(jù)安全。
參考文獻(xiàn):
[1] 張慧琳, 丁羽, 張利華, 等. 基于敏感字符的SQL注入攻擊防御方法[J]. 計(jì)算機(jī)研究與發(fā)展, 2016, 53(10): 2262-2276.
[2] 季嘉明. 基于Bootstrap+SSI的跨平臺(tái)企業(yè)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 上海: 東華大學(xué), 2015.
[3] 韋存堂. SQL注入與XSS攻擊自動(dòng)化檢測(cè)關(guān)鍵技術(shù)研究[D]. 北京: 北京郵電大學(xué), 2015.
[4] 王俊芳, 李隱峰, 王池. 基于MVC模式的ThinkPHP框架研究[J]. 電子科技, 2014, 27(4): 151-153, 158.
[5] 楊玉龍, 彭長(zhǎng)根, 周洲. 基于同態(tài)加密的防止SQL注入攻擊解決方案[J]. 信息網(wǎng)絡(luò)安全, 2014(1): 30-33.
[6] 李蘭崇. 基于角色的權(quán)限管理訪問(wèn)控制系統(tǒng)平臺(tái)研究與實(shí)踐[D]. 蘭州: 蘭州大學(xué), 2009.
[7] 張雷. 擴(kuò)展RBAC模型在WEB應(yīng)用中的研究與實(shí)現(xiàn)[D]. 北京: 北京交通大學(xué), 2008.
[8] 韋艷麗, 趙騰亞, 楊亞榮. 基于用戶(hù)角色模型的高校科研轉(zhuǎn)移系統(tǒng)研究[J]. 合肥工業(yè)大學(xué)學(xué)報(bào): 社會(huì)科學(xué)版, 2016, 30(2): 134-138.
[9] 任廣震, 侯進(jìn), 王獻(xiàn). MVC模式在B/S結(jié)構(gòu)政務(wù)系統(tǒng)的應(yīng)用研究[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2014, 31(8): 54-58, 74.
[10] 田偉. 模型驅(qū)動(dòng)的web應(yīng)用SQL注入安全漏洞滲透測(cè)試研究[D]. 天津: 南開(kāi)大學(xué), 2012.
[11] 范小康, 何連躍, 王曉川, 等. 一種基于RBAC模型的角色管理方法[J]. 計(jì)算機(jī)研究與發(fā)展, 2012, 49(S1): 211-215.
[12] 王欣. WEB應(yīng)用系統(tǒng)安全檢測(cè)關(guān)鍵技術(shù)研究[D]. 北京: 北京郵電大學(xué), 2011.
[13] 戴一平. MVC設(shè)計(jì)模式在PHP開(kāi)發(fā)中的應(yīng)用[J]. 計(jì)算機(jī)與現(xiàn)代化, 2011(3): 33-37, 43.
[14] 吳衛(wèi)平, 王麗芳, 蔣澤軍. 基于ORM的數(shù)據(jù)持久層框架研究[J]. 微電子學(xué)與計(jì)算機(jī), 2008(7): 188-190, 193.
[15] 周楊. 淺議SQL注入攻擊的原理及防御[J]. 實(shí)驗(yàn)技術(shù)與管理, 2007(10): 85-87, 170.
[16] 李威, 李曉紅. Web應(yīng)用存儲(chǔ)型XSS漏洞檢測(cè)方法及實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2016, 33(1): 24-27, 37.
[17] 韋存堂. SQL注入與XSS攻擊自動(dòng)化檢測(cè)關(guān)鍵技術(shù)研究[D]. 北京: 北京郵電大學(xué), 2015.