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