柏云飛
【摘要】在21世紀(jì)的信息時(shí)代,“信息”的革命讓人類的溝通更加便捷。同時(shí)企業(yè)之間的人才競爭也越來越來激烈,因而有必要開發(fā)一套網(wǎng)絡(luò)人才招聘系統(tǒng),以滿足企業(yè)的人才戰(zhàn)略需求。該系統(tǒng)既幫助企業(yè)更加有效,快速的找到自己所需的人才,又為求職者提供了一個安全可靠的求職渠道。系統(tǒng)采用SSH框架進(jìn)行構(gòu)建,Mysql作為數(shù)據(jù)存儲,利用軟件工程思想和方法進(jìn)行開發(fā)。
【關(guān)鍵詞】招聘系統(tǒng);求職網(wǎng)站;SSH
Abstract:The 21st century is the era of information,"information"revolution so that human communication more convenient.Now talent competition between enterprises is also growing too large.The advent of the Internet Recruitment system both to help businesses more effectively,quickly find the talent they need,and to provide a safe and secure job seekers job search channels.This paper discusses how to use the technology to build a secure and reliable j2ee recruitment system and solve some of today's job sites exist pertinence of information and low fidelity issues.This system built using SSH framework,Mysql as data storage and using software engineering ideas and methods.
Keywords:Recruitment System;Job System;SSH
1.引言
隨著經(jīng)濟(jì)和社會的發(fā)展,越來越多的人才涌入社會以及社會再就業(yè)人員的不斷加大,導(dǎo)致就業(yè)的壓力不斷增大。怎樣快速有效的獲取就業(yè)信息,對所有求職者來說至關(guān)重要。而網(wǎng)上人才招聘系統(tǒng)的出現(xiàn)簡化了招聘流程并且給求職者以及企業(yè)帶來了更多的選擇。
2.系統(tǒng)總體框架
本系統(tǒng)將采用SSH(String2,Spring3, Hibernate4)進(jìn)行構(gòu)建。使用SHH進(jìn)行開發(fā)的好處就是將軟件分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗(yàn)等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。Struts主要用于MVC的分離,實(shí)現(xiàn)控制業(yè)務(wù)跳轉(zhuǎn),而Hibernate框架用于對持久層提供支持,Spring主要管理struts和hibernate。
該網(wǎng)上人才招聘系統(tǒng)主要分為兩種用戶即求職者與招聘者,所以根據(jù)兩種主要用戶需要完成的需求就分為了求職和招聘兩大模塊。
圖1 系統(tǒng)整體框架圖
3.系統(tǒng)的業(yè)務(wù)邏輯
3.1 更新簡歷
當(dāng)會員登入成功之后,用戶可以對簡歷信息進(jìn)行管理。由于在此頁面需要登入后才能夠查看,所以此處的action配置了一個攔截器主要用來判斷用戶的狀態(tài),如果是不是登入用戶則沒有權(quán)限訪問。想要更新簡歷,首先需要將該用戶的簡歷信息插座出來,在為了保證數(shù)據(jù)的安全性,禁止通過Get傳參的形式直接將簡歷的主鍵Id作為查詢條件,因?yàn)镚et的值很有可能被修改而造成數(shù)據(jù)的紊亂。而我采用的通過Session中的Uid在簡歷表中查找,因?yàn)镾ession中保存的就是該用戶的狀態(tài),安全性得到提高。用戶首次更新簡歷其實(shí)在簡歷表中是沒有該用戶簡歷信息的,當(dāng)點(diǎn)擊更新簡歷按鈕時(shí)需要判斷該用戶是否是首次更新,防止數(shù)據(jù)庫中記錄的重復(fù)插入。
3.2 發(fā)布職位
如果注冊用戶想要發(fā)布職位必須通過綁定公司郵箱,當(dāng)我們輸入需要綁定的公司郵箱名以及公司名稱,程序會發(fā)送一封郵件給給你填寫的郵箱地址,當(dāng)點(diǎn)擊郵箱中的鏈接并且驗(yàn)證成功之后才能夠發(fā)布職位。此舉主要是考慮到職位信息的有效性。
具體算法如下:
(1)填寫郵箱地址,匹配該郵箱地址是否正確;
(2)根據(jù)該Email,生成一個UUID唯一碼,并插入user表中;
(3)使用sendEmail方法發(fā)送驗(yàn)證郵件;
(4)當(dāng)點(diǎn)擊郵件中鏈接時(shí)會去個妞email和code在表user中查找是否存在該條記錄,如果存在則郵件驗(yàn)證成功,允許發(fā)布職位,否者驗(yàn)證失敗;
當(dāng)完成郵箱的驗(yàn)證之后就可以發(fā)布職位了,發(fā)布的職位會顯示在職位列表當(dāng)中,以便我們在此頁面對發(fā)布的職位進(jìn)行重新編輯以及刪除操作。
3.3 編輯職位
當(dāng)選擇編輯職位按鈕,主要經(jīng)過了以下幾個操作:
(1)根據(jù)JobId查找以及保存在Session中的uid查找該職位;
(2)判斷職位是否存在如果存在則將數(shù)據(jù)顯示出來否則進(jìn)入錯誤頁;
在第(1)步當(dāng)中之所以需要根據(jù)jobId和uid共同查詢,而不單單只是根據(jù)jobId來查詢,主要考慮到Get中的參數(shù)是可以在URL地址欄中是可以被修改的,所以就會有這么一種情況,當(dāng)有人惡意的修改了Url中jobId的參數(shù)值的時(shí)候,如果只是根據(jù)jobId去查找的話,很有可能查找出來的數(shù)據(jù)庫是別人的,很明顯這是不允許的?,F(xiàn)在加上uid這個查詢條件就可以保證查找出來的數(shù)據(jù)是登入者的了。
3.4 刪除職位
當(dāng)職位過期,或者該職位失效的時(shí)候,我們需要有刪除職位的需求??紤]到可能存在誤操作,所以需要通過Js彈出一個確認(rèn)框,保證用戶是在正常的情況下刪除的。
從安全性角度考慮,刪除職位是通過JobId進(jìn)行刪除的,但是往往這個JobId是很容易被非法篡改的,一旦JobId被篡改就可能會出現(xiàn)你刪除的職位是別人的,而這是不允許的出現(xiàn)的情況,所以在刪除時(shí)需要在條件中多加一層判斷,判斷該簡歷的Uid確實(shí)屬于登入者。
3.5 投遞簡歷
當(dāng)用戶注冊之后就可以投遞簡歷了,基本流程如下:
(1)判斷是否以及登入,如果未登入則前往登入界面。
(2)求職者點(diǎn)擊投簡歷按鈕便可將預(yù)先自己編輯好的簡歷,投遞到職位發(fā)布者那頭,此處需要判斷該職位的發(fā)布者不是登入用戶,因?yàn)檎衅刚卟荒軌蛲哆f自己發(fā)布的職位。
(3)當(dāng)求職者完成申請,發(fā)布該職位的用戶就可以在發(fā)布的職位列表頁查看該職位的投遞情況了,點(diǎn)擊“投遞情況”按鈕,就可以查看有哪些用戶投遞了該職位以及這些用戶的簡歷。
4.安全性考慮
為了提高網(wǎng)站的安全性,以及保護(hù)用戶隱私,我主要從以下幾個方面來提高網(wǎng)站的安全性。
密碼加密:該系統(tǒng)采用的是MD5加密方法,這也是一種主流的不可逆的加密方法,加密之后的32位密碼存儲在數(shù)據(jù)庫中。
文件訪問權(quán)限:因?yàn)樵趕truts.xml文件中result對應(yīng)的jsp文件,不是用來直接訪問的,而是用來做渲染的,所以這些jsp文件我放在了WEB-INF目錄下,而WEB-INF目錄是無法通過url直接訪問的,所以這樣也可以從一定程度提高網(wǎng)站的安全性。
數(shù)據(jù)庫安全性:將mysql數(shù)據(jù)庫中用戶名密碼設(shè)置為不允許遠(yuǎn)程登入,并且給定的賬戶密碼只允許對該數(shù)據(jù)庫進(jìn)行操作,而不是直接給定root的權(quán)限。
防止sql注入:在 組織sql語句的時(shí)候?qū)斎氲臄?shù)據(jù)進(jìn)行嚴(yán)格的校驗(yàn),避免直接將輸入的數(shù)據(jù)作為sql的參數(shù)。通常使用的是Hibernate中setParameter參數(shù)綁定的形式。而且用了urlrewrite組件,除了考慮到SEO,美化url的作用外,還可以隱藏參數(shù),避免被直接顯示出了。
基礎(chǔ)設(shè)施安全設(shè)計(jì):安裝防火防病毒和殺毒軟件。設(shè)置防火墻,可以避免系統(tǒng)和信息受到非授權(quán)用戶的非授權(quán)程序的訪問;安裝殺毒軟件可以監(jiān)控計(jì)算機(jī)中程序和進(jìn)程的運(yùn)行情況,及時(shí)發(fā)現(xiàn)和消滅病毒程序和進(jìn)程,保護(hù)計(jì)算機(jī)系統(tǒng)和信息的安全。
5.總結(jié)
SSH是非常成熟的開發(fā)框架,其不僅開發(fā)快捷而且安全。該框架的系統(tǒng)從職責(zé)上分為三層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層,以幫助開發(fā)者在很短的時(shí)間內(nèi)搭建結(jié)構(gòu)清晰、可復(fù)用性好、維護(hù)方便的Web系統(tǒng)?;赟SH的網(wǎng)上人才招聘系統(tǒng)既幫助企業(yè)更加有效,快速的找到自己所需的人才,又為求職者提供了一個安全可靠的求職渠道。