謝敏 程適
摘要:大學(xué)生兼職家教信息市場混雜,為此提出運(yùn)用ThinkPHP框架設(shè)計(jì)并實(shí)現(xiàn)一種基于MVC架構(gòu)的快捷、共享的家教信息管理系統(tǒng)。分析了家教信息管理系統(tǒng)功能需求,闡述了信息系統(tǒng)數(shù)據(jù)庫關(guān)系及信息安全防護(hù)。系統(tǒng)實(shí)現(xiàn)了模型-視圖-控制器分離,極大提高了可維護(hù)性和擴(kuò)展性。應(yīng)用表明系統(tǒng)功能完善、界面友好、安全可靠。
關(guān)鍵詞:家教信息管理系統(tǒng);ThinkPHP;信息安全
DOI:10.11907/rjdk.181756
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-7800(2018)007-0128-04
Abstract:Inviewofthegeneralizationanddisorderofthepart-timeinformationmarketforcollegestudents,aquickandsharedtutoringinformationmanagementsystembasedonMVCarchitecturebyusingThinkPHPframeworkwasproposed.Theaimofthissystemistoexplorethefunctionalrequirementsoftutoringinformationmanagementsystem,therelationshipbetweendatabasesofinformationsystem,andtheinformationsecurityprotectionintheusageprocessbyusers.Thesystemachievedtheseparationofmodel,view,andcontroller,greatlyimprovedthemaintainabilityandexpansibilityofthesystem.Afterdeveloping,testinganddeploying,thesystemwasprovedtobesafeandreliablewithcompletefunctions,friendlyinterface,andremarkableeffect.
KeyWords:tutoringinformationmanagementsystem;ThinkPHP;informationsecurity
0引言
隨著社會(huì)競爭日益激烈,聘請(qǐng)家庭教師已成為提升學(xué)生競爭力的法寶。在美國的初、中等教育乃至高等教育中,有著與學(xué)校課堂教學(xué)同樣系統(tǒng)化、成規(guī)模的家庭教師輔導(dǎo)學(xué)習(xí)。美國家教信息系統(tǒng)通過對(duì)家教的類型、被輔導(dǎo)者年齡、指導(dǎo)項(xiàng)目水平等信息進(jìn)行嚴(yán)格的劃分和篩選,以保證家教服務(wù)質(zhì)量[1-2]。
國內(nèi)家教信息系統(tǒng)大多應(yīng)用于培訓(xùn)機(jī)構(gòu)和兼職招聘網(wǎng),其中參差不齊的家教信息同時(shí)出現(xiàn)在平臺(tái),信息篩選和家教定位存在很大的局限性。家教兼職信息浩如煙海,需求者很難甄別家教服務(wù)質(zhì)量的優(yōu)劣,大學(xué)生兼職期望待遇參考依據(jù)不強(qiáng)[3-4]。因此,建立一個(gè)大學(xué)生家教信息管理系統(tǒng),對(duì)家教信息進(jìn)行科學(xué)、合理的定位和統(tǒng)一管理非常必要。
本文對(duì)大學(xué)生家教信息管理系統(tǒng)進(jìn)行了需求分析,運(yùn)用ThinkPHP框架建立了一個(gè)安全可靠的大學(xué)生家教信息管理系統(tǒng)。家教供需雙方可以在系統(tǒng)發(fā)布供需信息??赏ㄟ^可視化操作添加管理模塊,系統(tǒng)自動(dòng)生成相應(yīng)的數(shù)據(jù)表字段對(duì)數(shù)據(jù)表進(jìn)行CRUD(增加、查詢、更新、刪除)操作,增強(qiáng)了系統(tǒng)的擴(kuò)展性和靈活性。采用Apache圖片重定向方法設(shè)置圖片防盜鏈,基于數(shù)據(jù)輸入檢驗(yàn)抵御跨站腳本攻擊,令牌機(jī)制解決表單重復(fù)提交以保證系統(tǒng)安全。
1關(guān)鍵技術(shù)
1.1MVC模式
MVC(Model-View-Controller)指模型-視圖-控制器的軟件架構(gòu)模式。MVC模式把用戶界面交互拆分到3個(gè)不同的角色中,使應(yīng)用程序分成3個(gè)核心部件:模型(Model)、視圖(View)、控制器(Controller)[5]。MVC模式如圖1所示。
模型:負(fù)責(zé)數(shù)據(jù)封裝、業(yè)務(wù)邏輯控制和記錄數(shù)據(jù)變化。模型通常獨(dú)立于視圖和控制器,一個(gè)模型可為多個(gè)視圖提供數(shù)據(jù)。
視圖:用于呈現(xiàn)模型,以模型為載體將所得到的數(shù)據(jù)和程序狀態(tài)展示給用戶,并將用戶界面的輸入數(shù)據(jù)和請(qǐng)求傳遞給控制器和模型。
控制器:負(fù)責(zé)協(xié)調(diào)模型和視圖。負(fù)責(zé)接收用戶請(qǐng)求,將輸入的請(qǐng)求解析反饋給模型和視圖去完成用戶請(qǐng)求。
1.2ThinkPHP架構(gòu)
ThinkPHP框架是一個(gè)快速、兼容且簡單的輕量級(jí)免費(fèi)開源PHP開發(fā)框架,其結(jié)合了Struts的思想和TagLib(標(biāo)簽庫)、RoR的ORM映射和ActiveRecord模式,采用面向?qū)ο蟮拈_發(fā)模式和MVC模式,同時(shí)支持多種數(shù)據(jù)庫和PDO(PHPDataObjects)擴(kuò)展[5]。ThinkPHP框架包含了底層架構(gòu)、兼容處理、基類庫、模板引擎、緩存機(jī)制、插件機(jī)制、角色認(rèn)證、表單處理等常用組件,很大程度上提高了家教信息管理系統(tǒng)的開發(fā)效率、可維護(hù)性、可拓展性和代碼的可讀性,降低了開發(fā)難度[6-7]。
2系統(tǒng)設(shè)計(jì)
2.1系統(tǒng)功能模塊設(shè)計(jì)
通過對(duì)家教需求的分析,按照用戶角色劃分為大學(xué)學(xué)生用戶、家長注冊(cè)用戶、系統(tǒng)管理員,每個(gè)角色具有基本的注冊(cè)、登錄、密碼找回等功能。系統(tǒng)具有為大學(xué)生用戶提供個(gè)人檔案管理、家教信息申請(qǐng)、系統(tǒng)公告中心、常見問題中心和信息反饋功能;為家長提供個(gè)人信息管理、家教信息發(fā)布、操作中心、系統(tǒng)公告中心及信息反饋功能。系統(tǒng)管理員使用用戶信息管理、角色權(quán)限管理、通信管理及自定義功能[8-11]。系統(tǒng)功能分配如圖2所示。
2.1.1大學(xué)生用戶
(1)個(gè)人檔案管理。大學(xué)生用戶在注冊(cè)個(gè)人信息結(jié)束后,可通過個(gè)人檔案管理模塊進(jìn)行查看和修改,同時(shí)可查看歷史記錄及家長評(píng)價(jià),了解自身不足之處。
(2)家教信息申請(qǐng)。可通過該模塊領(lǐng)取家教信息。
(3)系統(tǒng)公告中心。系統(tǒng)對(duì)每個(gè)注冊(cè)用戶設(shè)立公告通知,及時(shí)反饋家教申請(qǐng),并通知一些重要的站內(nèi)信息。
(4)常見問題中心。記錄系統(tǒng)操作方法和注意事項(xiàng),以及家長反饋的普遍問題供用戶參考。
(5)信息反饋。在使用系統(tǒng)過程中存在的疑問和家教過程中遇到的困難均可通過該模塊進(jìn)行反饋。系統(tǒng)管理員可對(duì)問題作出在線解答,并在站內(nèi)私信給用戶。如果問題難以描述,用戶可直接聯(lián)系系統(tǒng)管理員。
2.1.2家長注冊(cè)用戶
(1)個(gè)人信息管理。展示用戶注冊(cè)信息。為保證信息的正確性,在不被審核的情況下不得隨意修改個(gè)人資料。該模塊對(duì)用戶歷史發(fā)布的家教信息統(tǒng)一排列,并結(jié)合參與家教的大學(xué)生用戶反饋對(duì)其進(jìn)行信用評(píng)分。
(2)家教信息發(fā)布。用戶可在系統(tǒng)中填寫家教信息單,詳細(xì)說明家教需求,系統(tǒng)將記錄這些信息并及時(shí)發(fā)布。
(3)系統(tǒng)公告中心。系統(tǒng)對(duì)每個(gè)用戶設(shè)立公告通知,通知站內(nèi)信息。一旦有大學(xué)生用戶領(lǐng)取該用戶需求,會(huì)將部分大學(xué)生用戶信息通過站內(nèi)私信發(fā)送給該用戶進(jìn)行篩選。
(4)常見問題中心。記錄系統(tǒng)操作方法和注意事項(xiàng),以及某個(gè)年級(jí)的家教參考價(jià)格。
(5)信息反饋。及時(shí)反饋系統(tǒng)使用過程中的問題及用戶對(duì)家教的意見。
2.1.3系統(tǒng)管理員
(1)用戶信息管理。系統(tǒng)管理員進(jìn)入系統(tǒng)后可對(duì)注冊(cè)用戶信息進(jìn)行管理,包括對(duì)注冊(cè)用戶進(jìn)行基本信息修改、垃圾數(shù)據(jù)清理和身份核實(shí)。
(2)家教信息管理。該模塊用于審核家教信息,對(duì)大學(xué)生用戶進(jìn)行信息匹配,通知雙方簽訂家教協(xié)議書。
(3)角色權(quán)限管理。系統(tǒng)管理員可在自己權(quán)限之下建立子管理員,給對(duì)應(yīng)子管理員分配比自身權(quán)限低的功能使用權(quán),同時(shí)對(duì)注冊(cè)用戶權(quán)限進(jìn)行限制,如某家長多次被大學(xué)生用戶投訴,經(jīng)過核實(shí),系統(tǒng)管理員可對(duì)該家長限制發(fā)布需求甚至打入黑名單。
(4)通信管理。管理站內(nèi)信息的發(fā)布與短信通知。系統(tǒng)管理員可處理注冊(cè)用戶的信息反饋,可通過短信發(fā)送重要通知。
(5)自定義功能。系統(tǒng)管理員可通過可視化添加需要管理的字段名和字段類型,一鍵生成數(shù)據(jù)庫表和基本的CRUD操作,并在系統(tǒng)權(quán)限管理中參與管理,該功能極大滿足了系統(tǒng)管理員的特殊需求。
2.2數(shù)據(jù)庫設(shè)計(jì)
通過需求分析和功能模塊設(shè)計(jì),建立關(guān)于系統(tǒng)的不同實(shí)體、屬性以及各實(shí)體的關(guān)聯(lián),用E-R圖表示。抽象出各實(shí)體的關(guān)聯(lián)關(guān)系,根據(jù)數(shù)據(jù)庫范式標(biāo)準(zhǔn)去除冗余字段并對(duì)多對(duì)多關(guān)系建立中間表[12-13]。建立關(guān)系數(shù)據(jù)庫并確定各關(guān)系模式的屬性、關(guān)鍵字及完整性約束。系統(tǒng)部分E-R圖如圖3所示。
系統(tǒng)中的所有數(shù)據(jù)信息均記錄在jf_tutor數(shù)據(jù)庫中。該數(shù)據(jù)庫表包括大學(xué)生信息表、家長信息表、系統(tǒng)管理員信息表、系統(tǒng)管理員操作日志表、附件信息表、權(quán)限分組表、權(quán)限規(guī)則表、系統(tǒng)配置表、家教信息表、系統(tǒng)公告表、常見問題表。大學(xué)生信息表jf_user的部分屬性設(shè)置見表1。
3系統(tǒng)安全性
服務(wù)雙方均希望保證自身信息的隱私性,因此系統(tǒng)的安全防護(hù)尤為重要。為此,系統(tǒng)采取Apache圖片重定向方法設(shè)置圖片防盜鏈,采用基于數(shù)據(jù)輸入檢驗(yàn)抵御跨站腳本攻擊、令牌機(jī)制解決表單重復(fù)提交等方法保證系統(tǒng)安全[14-15]。
3.1Apache圖片重定向方法設(shè)置圖片防盜鏈
所謂盜鏈?zhǔn)侵肝唇?jīng)合法性認(rèn)證授權(quán),非法訪問服務(wù)器內(nèi)部資源借此謀取信息的方法[16]。Apache圖片重定向方法設(shè)置圖片防盜鏈就是基于對(duì)http報(bào)頭的監(jiān)聽,針對(duì)所有服務(wù)器圖片的請(qǐng)求進(jìn)行過濾和重定向。對(duì)每一個(gè)http報(bào)頭中的Referer進(jìn)行篩選過濾。如果Referer指向的是非本站地址,就禁止訪問圖片資源并跳轉(zhuǎn)入錯(cuò)誤頁面。
3.2基于數(shù)據(jù)輸入檢驗(yàn)抵御跨站腳本攻擊
跨站腳本攻擊是指用戶將代碼植入到提供給其它用戶使用的頁面從而謀取私利的過程[17]。通常將惡意代碼輸入系統(tǒng)保存,下次執(zhí)行時(shí)將數(shù)據(jù)庫中的惡意代碼執(zhí)行,從而使其他用戶受到損害。對(duì)此,系統(tǒng)采取對(duì)用戶的輸入進(jìn)行驗(yàn)證方式,驗(yàn)證所有輸入數(shù)據(jù)的長度、類型、語法以及業(yè)務(wù)規(guī)則,保證數(shù)據(jù)源安全。
3.3令牌機(jī)制解決表單重復(fù)提交
表單重復(fù)提交指在用戶提交數(shù)據(jù)時(shí)網(wǎng)絡(luò)擁塞或用戶蓄意訪問服務(wù)器,導(dǎo)致用戶數(shù)據(jù)提交錯(cuò)誤和服務(wù)器資源浪費(fèi)[18]。為此,系統(tǒng)采用設(shè)置令牌的方法解決該問題,當(dāng)用戶訪問服務(wù)器資源時(shí)同時(shí)將一個(gè)加密的隨機(jī)值返回給用戶,并在Session中保存對(duì)應(yīng)的隨機(jī)值。在用戶進(jìn)行表單提交的同時(shí)將隨機(jī)值提交,與Session中存放的值進(jìn)行解密比對(duì),兩者相同則提交成功,否則駁回提交請(qǐng)求。表單機(jī)制運(yùn)行過程如圖4、圖5所示。
4系統(tǒng)測試
系統(tǒng)測試是對(duì)整個(gè)系統(tǒng)開發(fā)的質(zhì)量進(jìn)行檢測,本系統(tǒng)進(jìn)行了數(shù)據(jù)測試和功能測試。數(shù)據(jù)測試主要是數(shù)據(jù)的正確性及關(guān)聯(lián)性測試,功能檢測則是通過模擬用戶進(jìn)行系統(tǒng)的功能完整性測試[19-20]。
4.1功能測試
用例測試部分結(jié)果如表2所示。
4.2運(yùn)行效果
圖6是系統(tǒng)部分主界面運(yùn)行截圖。
5結(jié)語
本文通過分析家教信息管理系統(tǒng)現(xiàn)狀,結(jié)合高校大學(xué)生家教意愿以及家教需求分析,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于ThinkPHP框架的家教信息管理系統(tǒng)。該系統(tǒng)不僅簡化了家教信息篩選過程,而且改善了供需雙方的匹配度和信息安全性,最終保證了家教服務(wù)質(zhì)量。系統(tǒng)采用MVC框架模式,將各個(gè)模塊劃分詳細(xì),完全滿足高內(nèi)聚、低耦合特性。使用ThinkPHP框架極大提高了系統(tǒng)的可維護(hù)性和擴(kuò)展性,多種安全防護(hù)機(jī)制保證使用過程中的信息安全。對(duì)系統(tǒng)進(jìn)行了功能測試和數(shù)據(jù)測試,以保證系統(tǒng)滿足用戶在功能和性能上的需求。
參考文獻(xiàn):
[1]韋永瓊.美國中小學(xué)志愿家教現(xiàn)狀初探[J].外國中小學(xué)教育,2010(5):42-58.
[2]韋永瓊.美國課外家教輔導(dǎo)及其啟示[J].江蘇教育研究,2013(22):41-44.
[3]徐曼純,王妙鳳.大學(xué)生家教現(xiàn)狀及問題分析[J].人才資源開發(fā),2017(6):142-143.
[4]周彤,張力,馬亞蓉,等.淺談大學(xué)生家教現(xiàn)狀及家教管理對(duì)其發(fā)展的影響[J].教育教學(xué)論壇,2014(39):159-160.
[5]王俊芳,李隱峰,王池.基于MVC模式的ThinkPHP框架研究[J].電子科技,2014,27(4):151-153,158.
[6]張文勝,陳宏.基于ThinkPHP模型的敏捷Web開發(fā)的應(yīng)用與實(shí)踐[J].軟件工程,2016,19(3):45-48.
[7]田洋,陳紅,卞振.基于PHP技術(shù)的網(wǎng)站設(shè)計(jì)及建設(shè)方式分析[J].赤峰學(xué)院學(xué)報(bào):自然科學(xué)版,2017,33(13):6-7.
[8]劉浪.家教管理信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2012(6):16-24.
[9]黃敏,李志軍,朱合隆,等.傾心家教O2O平臺(tái)設(shè)計(jì)[J].科技廣場,2017(7):178-184.
[10]劉淑英,鄒燕飛,胡偉娟,等.基于PHP技術(shù)的家教信息平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代信息科技,2018(5):17-18.
[11]項(xiàng)永明.大學(xué)生家教系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長春:吉林大學(xué),2015.
[12]溫立輝.關(guān)系數(shù)據(jù)庫設(shè)計(jì)原理與分析[J].無線互聯(lián)科技,2018,15(1):58-59.
[13]王建國.數(shù)據(jù)庫設(shè)計(jì)在網(wǎng)站開發(fā)中的應(yīng)用[J].山東農(nóng)業(yè)工程學(xué)院學(xué)報(bào),2017,34(4):158-159,164.
[14]劉智瑩,朱程榮.基于PHP實(shí)現(xiàn)數(shù)據(jù)安全性的方法及比較[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(19):4387-4389,4392.
[15]王莎莎.基于ThinkPHP框架的網(wǎng)絡(luò)安全攻防實(shí)訓(xùn)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2017.
[16]鄭紹輝,周明天.反盜鏈技術(shù)研究[J].計(jì)算機(jī)時(shí)代,2008(1):58-59.
[17]龔小剛,王紅凱,夏威,等.跨站腳本攻擊(XSS)的形成與利用研究[J].信息安全與技術(shù),2015,6(3):52-55.
[18]高河福.令牌機(jī)制在B/S應(yīng)用系統(tǒng)中表單重復(fù)提交問題的研究與應(yīng)用[J].韓山師范學(xué)院學(xué)報(bào),2011,32(6):49-53.
[19]肖路.Web應(yīng)用系統(tǒng)功能測試研究與應(yīng)用[D].重慶:重慶大學(xué),2007.
[20]王文東.基于B/S架構(gòu)的Web軟件系統(tǒng)測試應(yīng)用分析[J].軟件導(dǎo)刊,2016,15(8):137-139.
(責(zé)任編輯:杜能鋼)