專利名稱:一種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)應(yīng)用系統(tǒng)安全防護(hù)領(lǐng)域,具體涉及ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法。
背景技術(shù):
安全漏洞是指受限制的計(jì)算機(jī)、組件、應(yīng)用程序或其他聯(lián)機(jī)資源的無意中留下的不受保護(hù)的入口點(diǎn)。漏洞是硬件軟件或使用策略上的缺陷,他們會(huì)使計(jì)算機(jī)遭受病毒和黑客攻擊。安全攻擊主要來源干“發(fā)送惡意信息到web服務(wù)器”,因?yàn)椹`些安全漏洞的原因,通過這些惡意信息的執(zhí)行而對(duì)web服務(wù)器或客戶端的安全構(gòu)成威脅。web應(yīng)用十大關(guān)鍵風(fēng)險(xiǎn)如下:Al-注入攻擊:注入攻擊,例如SQL,OS以及LDAP注入,發(fā)生在當(dāng)不可信的數(shù)據(jù)作為命令或者查詢語句的一部分被發(fā)送給處理程序的時(shí)候。攻擊者發(fā)送的惡意數(shù)據(jù)可以欺騙處理程序,以執(zhí)行計(jì)劃外的命令或者訪問未被授權(quán)的數(shù)據(jù)。A2-跨站腳本(XSS):當(dāng)應(yīng)用程序包含或者攜帯不可信的數(shù)據(jù),并且沒有進(jìn)行合適的驗(yàn)證就將它發(fā)送給瀏覽器的時(shí)候,跨站點(diǎn)腳本攻擊(簡(jiǎn)稱XSS)就會(huì)產(chǎn)生了。XSS允許攻擊者在受害者的瀏覽器上執(zhí)行腳本,于是攻擊者可以劫持用戶會(huì)話,危害網(wǎng)站,或者將用戶轉(zhuǎn)向至惡意站點(diǎn)。A3-失效的認(rèn)證和會(huì)話管理:與認(rèn)證和會(huì)話管理相關(guān)的應(yīng)用程序功能往往得不到正確實(shí)施,這就導(dǎo)致攻擊者破壞密碼、密匙、會(huì)話令牌或利用實(shí)施漏洞冒充其他用戶身份。A4-不安全的直接對(duì)象引用:當(dāng)開發(fā)者將引用直接暴露給外部執(zhí)行對(duì)象時(shí),例如,文件、目錄、數(shù)據(jù)庫(kù)密匙,就會(huì)發(fā)生不安全的直接對(duì)象引用。在沒有訪問控制檢測(cè)或其他保護(hù)時(shí),攻擊者會(huì)操控這些引用從而訪問未授權(quán)數(shù)據(jù)。A5-跨站請(qǐng)求偽造:跨站請(qǐng)求偽造攻擊迫使登錄用戶的瀏覽器將偽造的HTTP請(qǐng)求,包括該用戶的會(huì)話cookie和其他認(rèn)證信息,發(fā)送到存在漏洞的web應(yīng)用。這就允許攻擊者迫使用戶瀏覽器向存在漏洞的應(yīng)用程序發(fā)送請(qǐng)求,而這些請(qǐng)求會(huì)被應(yīng)用程序認(rèn)為是用戶的合法請(qǐng)求。A6-安全配置錯(cuò)誤:安全取決于有ー個(gè)配置安全的應(yīng)用程序、框架、web服務(wù)器、應(yīng)用服務(wù)器和平臺(tái)。由于許多設(shè)置并沒有默認(rèn)安全,因此必須定義、實(shí)施、維護(hù)所有這些設(shè)置。A7-限制URL訪問失敗:許多web應(yīng)用在鏈接到受保護(hù)的鏈接和按鈕之前會(huì)檢測(cè)URL訪問權(quán)限。但是當(dāng)訪問了這些頁(yè)面時(shí)應(yīng)用程序會(huì)執(zhí)行相似的訪問控制檢測(cè),否則攻擊者將能偽造URL訪問這些隱藏的網(wǎng)頁(yè)。A8-尚未認(rèn)證的重定向和轉(zhuǎn)發(fā):web應(yīng)用經(jīng)常將用戶重定向和轉(zhuǎn)向其他網(wǎng)頁(yè)和網(wǎng)站,并且利用不信任數(shù)據(jù)確定目的頁(yè)面。如果沒有得到適當(dāng)驗(yàn)證,攻擊者能重定向受害用戶到釣魚軟件或惡意網(wǎng)址,或者轉(zhuǎn)發(fā)到訪問未授權(quán)頁(yè)面。A9-不安全的密碼儲(chǔ)藏:許多web應(yīng)用程序并沒有使用恰當(dāng)?shù)募用芑騢ashing保護(hù)敏感數(shù)據(jù),如信用卡、SSNs、認(rèn)證證書等等。攻擊者可能利用這種弱保護(hù)數(shù)據(jù)實(shí)行身份盜竊、信用卡盜用或其他犯罪。AlO-傳輸層保護(hù)不足:在必須保護(hù)敏感信息傳輸時(shí),應(yīng)用程序經(jīng)常無法加密網(wǎng)絡(luò)流量。當(dāng)他們實(shí)施加密網(wǎng)絡(luò)流量時(shí),他們有時(shí)也支持弱算法、使用過期或無效證書或不正確使用他們。A++應(yīng)用系統(tǒng)等JavaEE應(yīng)用系統(tǒng)在實(shí)現(xiàn)過程中缺少安全漏洞防患,同樣也存在上述安全漏洞。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,解決系統(tǒng)存在的安全漏洞問題,對(duì)系統(tǒng)進(jìn)行安全加固。為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:一種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,包括以下步驟:(I)客戶端根據(jù)業(yè)務(wù)需要向服務(wù)器端發(fā)送業(yè)務(wù)請(qǐng)求;所述的業(yè)務(wù)請(qǐng)求中包括所要請(qǐng)求的業(yè)務(wù)的請(qǐng)求參數(shù);(2)服務(wù)器端對(duì)接收到的請(qǐng)求進(jìn)行安全驗(yàn)證服務(wù),檢驗(yàn)安全驗(yàn)證是否通過,若通過則根據(jù)客戶端的業(yè)務(wù)請(qǐng)求進(jìn)行業(yè)務(wù)處理;若未通過則安全驗(yàn)證失?。?3)將處理結(jié)果返回給客戶端。進(jìn)一歩,如上所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,步驟(I)中,所述業(yè)務(wù)請(qǐng)求包括公共頁(yè)面資源訪問請(qǐng)求和認(rèn)證頁(yè)面資源訪問請(qǐng)求;所述公共頁(yè)面資源是指不需要登錄系統(tǒng)訪問的頁(yè)面資源;所述認(rèn)證頁(yè)面資源是指在登錄系統(tǒng)后經(jīng)過權(quán)限認(rèn)證許可后才可以訪問的頁(yè)面資源。進(jìn)ー步,如上所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,步驟(2)中,所述的進(jìn)行業(yè)務(wù)處理是指根據(jù)客戶端的業(yè)務(wù)請(qǐng)求指令,在通過安全驗(yàn)證后的業(yè)務(wù)邏輯處理;所述的安全驗(yàn)證失敗是指響應(yīng)非法頁(yè)面。進(jìn)一歩,如上所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,步驟(I)中,所述業(yè)務(wù)請(qǐng)求的請(qǐng)求參數(shù)包括:所請(qǐng)求的頁(yè)面資源的類型、登錄參數(shù)信息、動(dòng)態(tài)頁(yè)面地址信息以及請(qǐng)求返回的記錄總數(shù)和記錄偏移。進(jìn)一歩,如上所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,步驟(I)中,如果業(yè)務(wù)請(qǐng)求為公共頁(yè)面資源訪問請(qǐng)求,步驟(2)中,通過對(duì)請(qǐng)求參數(shù)進(jìn)行安全驗(yàn)證過濾實(shí)現(xiàn)安全驗(yàn)證服務(wù),具體方式如下:I)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行數(shù)據(jù)庫(kù)權(quán)限提升指令過濾,查看請(qǐng)求參數(shù)中是否含有數(shù)據(jù)庫(kù)權(quán)限提升指令,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過;2)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行操作系統(tǒng)指令和安全過濾,查看請(qǐng)求參數(shù)中是否含有操作系統(tǒng)指令,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過;3)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行SQL注入信息過濾,查看請(qǐng)求參數(shù)中是否含有SQL注入信息,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過;4)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行HTML標(biāo)記過濾,查看請(qǐng)求參數(shù)中是否含有HTML標(biāo)記,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過。進(jìn)一歩,如上所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,步驟(I)中,如果業(yè)務(wù)請(qǐng)求為認(rèn)證頁(yè)面資源訪問請(qǐng)求,客戶端發(fā)送認(rèn)證頁(yè)面資源訪問請(qǐng)求時(shí)對(duì)其請(qǐng)求參數(shù)進(jìn)行加密處理。進(jìn)一歩,如上所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,步驟(I)中,如果業(yè)務(wù)請(qǐng)求為認(rèn)證頁(yè)面資源訪問請(qǐng)求,步驟(2)中進(jìn)行安全驗(yàn)證服務(wù)的具體方式如下:①服務(wù)器端接收到客戶端發(fā)送的認(rèn)證頁(yè)面資源訪問請(qǐng)求,對(duì)請(qǐng)求進(jìn)行解密處理;②對(duì)解密后的請(qǐng)求參數(shù)進(jìn)行非法信息過濾驗(yàn)證,若非法信息過濾驗(yàn)證通過則安全驗(yàn)證通過,若非法信息過濾驗(yàn)證沒有通過則安全驗(yàn)證失敗。再進(jìn)ー步,如上所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,步驟②中對(duì)請(qǐng)求參數(shù)進(jìn)行非法信息過濾驗(yàn)證的具體方式為:I)對(duì)認(rèn)證頁(yè)面資源訪問請(qǐng)求進(jìn)行數(shù)據(jù)庫(kù)權(quán)限提升指令過濾,查看請(qǐng)求參數(shù)中是否含有數(shù)據(jù)庫(kù)權(quán)限提升指令,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過;2)對(duì)認(rèn)證頁(yè)面資源訪問請(qǐng)求進(jìn)行操作系統(tǒng)指令和安全過濾,查看請(qǐng)求參數(shù)中是否含有操作系統(tǒng)指令,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過;3)對(duì)認(rèn)證頁(yè)面資源訪問請(qǐng)求進(jìn)行SQL注入信息過濾,查看請(qǐng)求參數(shù)中是否含有SQL注入信息,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過;4)對(duì)認(rèn)證頁(yè)面資源訪問請(qǐng)求進(jìn)行HTML標(biāo)記過濾,查看請(qǐng)求參數(shù)中是否含有HTML標(biāo)記,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過。更進(jìn)一歩,如上所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,采用base64對(duì)請(qǐng)求參數(shù)進(jìn)行加密處理。本發(fā)明的有益效果在干:本發(fā)明所述的安全加固方法在原有的A++應(yīng)用系統(tǒng)的平臺(tái)上通過安全驗(yàn)證服務(wù)擴(kuò)展部署,實(shí)現(xiàn)對(duì)A++應(yīng)用系統(tǒng)的安全加固,在子系統(tǒng)中采用非平臺(tái)技術(shù)的自定義開發(fā)技術(shù)需要引用安全驗(yàn)證服務(wù),達(dá)到安全加固的目的。
圖1為本發(fā)明基于JavaEE應(yīng)用系統(tǒng)的安全加固方法的概括流程圖;圖2為本發(fā)明基于JavaEE應(yīng)用系統(tǒng)的安全加固方法的流程圖;圖3為本發(fā)明對(duì)公共頁(yè)面資源請(qǐng)求進(jìn)行安全驗(yàn)證服務(wù)的流程圖;圖4為本發(fā)明對(duì)認(rèn)證頁(yè)面資源請(qǐng)求進(jìn)行安全驗(yàn)證服務(wù)的流程圖。
具體實(shí)施例方式下面結(jié)合說明書附圖與具體實(shí)施方式
對(duì)本發(fā)明做進(jìn)ー步的詳細(xì)說明。本發(fā)明的主要思想:本發(fā)明提供了一種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,由于A++應(yīng)用系統(tǒng)是基于平臺(tái)基礎(chǔ)上應(yīng)用擴(kuò)展系統(tǒng),所以只需要在平臺(tái)上擴(kuò)展就可以達(dá)到安全加固的目的,本發(fā)明將安全加固的方法封裝為安全驗(yàn)證服務(wù),只有通過安全驗(yàn)證服務(wù)才是合法的請(qǐng)求。通過該方法對(duì)系統(tǒng)進(jìn)行安全加固,有效防患系統(tǒng)安全漏洞問題。圖1與圖2不出了本發(fā)明ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法的流程圖,由圖中可以看出,該方法主要包括以下步驟:步驟Sll:客戶端根據(jù)業(yè)務(wù)需要向服務(wù)器端發(fā)送請(qǐng)求;客戶端根據(jù)業(yè)務(wù)需要向服務(wù)器端發(fā)送業(yè)務(wù)請(qǐng)求;所述的業(yè)務(wù)請(qǐng)求中包括所要請(qǐng)求的業(yè)務(wù)的請(qǐng)求參數(shù)。本實(shí)施方式以JavaEE應(yīng)用系統(tǒng)中的A++應(yīng)用系統(tǒng)對(duì)本發(fā)明所述的方法進(jìn)行說明,在A++應(yīng)用系統(tǒng)存在以下三種訪問資源:公共頁(yè)面資源、登錄頁(yè)面資源以及認(rèn)證頁(yè)面資源,其中,公共頁(yè)面資源是指不需要登錄系統(tǒng)訪問的頁(yè)面資源,登錄頁(yè)面資源是指用戶登錄的頁(yè)面,認(rèn)證頁(yè)面資源是指在登錄后經(jīng)過權(quán)限認(rèn)證許可后才可以訪問的頁(yè)面資源。本發(fā)明所述的方法通過對(duì)公共頁(yè)面資源和認(rèn)證頁(yè)面資源這兩種訪問資源進(jìn)行安全驗(yàn)證服務(wù)達(dá)到系統(tǒng)安全加固的目的。所以客戶端的用戶在向服務(wù)器端發(fā)送請(qǐng)求時(shí),請(qǐng)求包括公共頁(yè)面資源訪問請(qǐng)求和認(rèn)證頁(yè)面資源訪問請(qǐng)求。業(yè)務(wù)請(qǐng)求的請(qǐng)求參數(shù)包括且不限于如下參數(shù)信息:所請(qǐng)求的頁(yè)面資源的類型、登錄參數(shù)信息、動(dòng)態(tài)頁(yè)面地址信息以及請(qǐng)求返回的記錄總數(shù)和記錄偏移。如果業(yè)務(wù)請(qǐng)求為認(rèn)證頁(yè)面資源訪問請(qǐng)求,客戶端發(fā)送認(rèn)證頁(yè)面資源訪問請(qǐng)求時(shí)對(duì)其請(qǐng)求參數(shù)進(jìn)行加密處理,采用base64對(duì)請(qǐng)求參數(shù)進(jìn)行加密處理。對(duì)于不同的頁(yè)面資源,其參數(shù)信息不同:1.對(duì)于公共頁(yè)面資源:(I)登錄首頁(yè)登錄首頁(yè),如公共頁(yè)面資源的請(qǐng)求參數(shù)如下:http://IP:PORT/portal/login.action 或者h(yuǎn)ttp://IP:PORT/index, jsp則請(qǐng)求參數(shù)名包括登錄參數(shù)信息:如username, password, encrypt, validity ;其中encrypt參數(shù)為true表不要加密傳輸,false表不不進(jìn)行加密傳輸,加密傳輸則對(duì)username, password,參數(shù)名和參數(shù)值都進(jìn)行加密后再傳輸,validity表示登錄時(shí)的驗(yàn)證碼。采用post提交數(shù)據(jù)。 (2)公布的動(dòng)態(tài)信息如:http://IP:P0RT/public.action function=notes 或http://IP:P0RT/public.action function=notes&count=47&pager.0ffset=18請(qǐng)求參數(shù)名包括:function, count, pager, offset;其中function表示功能類型,count為記錄總數(shù),pager, offset表示偏移記錄。(3)如果用戶請(qǐng)求的為靜態(tài)頁(yè)面,無參數(shù)。2.認(rèn)證頁(yè)面資源:通過認(rèn)證后的頁(yè)面資源參數(shù)包括:function和_STATE,其中function表示功能類型,.STATE參數(shù)值為經(jīng)過base64加密算法后的信息,例如:http://IP:PORT/dispatcher.action function=apply batch audit& SBATE=66756e6374696f6e3d6170706c795f62617463685f6175646974267573657B49643d55313330373038303031。步驟S12:服務(wù)器端對(duì)接收到的請(qǐng)求進(jìn)行安全驗(yàn)證服務(wù);步驟S13:將處理結(jié)果返回給客戶端。服務(wù)器端接收客戶端用戶發(fā)送來的請(qǐng)求之后,使用安全驗(yàn)證服務(wù)對(duì)請(qǐng)求進(jìn)行安全驗(yàn)證,并查看安全驗(yàn)證是否通過,如果通過驗(yàn)證則調(diào)用相關(guān)的業(yè)務(wù)處理服務(wù),對(duì)客戶端的請(qǐng)求進(jìn)行處理,并將處理結(jié)果返回給客戶端;如果沒有通過驗(yàn)證則將驗(yàn)證失敗的結(jié)果返回給客戶端。所述的進(jìn)行業(yè)務(wù)處理是指根據(jù)客戶端的業(yè)務(wù)請(qǐng)求指令,在通過安全驗(yàn)證后的業(yè)務(wù)邏輯處理;所述的安全驗(yàn)證失敗是指響應(yīng)非法頁(yè)面。步驟Sll中客戶端用戶發(fā)送的請(qǐng)求包括了公共頁(yè)面資源訪問請(qǐng)求和認(rèn)證頁(yè)面資源訪問請(qǐng)求兩種形式,對(duì)于兩種請(qǐng)求,本發(fā)明分別對(duì)應(yīng)各自的安全驗(yàn)證服務(wù)。如果步驟Sll中業(yè)務(wù)請(qǐng)求為公共頁(yè)面資源訪問請(qǐng)求,該步驟中本實(shí)施方式中的公共頁(yè)面資源是利用JavaEE的Filter技術(shù),通過對(duì)請(qǐng)求參數(shù)進(jìn)行安全驗(yàn)證過濾實(shí)現(xiàn)安全驗(yàn)證服務(wù),具體方式如圖3所示:I)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行數(shù)據(jù)庫(kù)權(quán)限提升指令過濾,查看請(qǐng)求參數(shù)中是否含有數(shù)據(jù)庫(kù)權(quán)限提升指令信息,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過;2)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行操作系統(tǒng)指令和安全過濾,查看請(qǐng)求參數(shù)中是否含有操作系統(tǒng)指令或文件系統(tǒng)信息,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過;3)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行SQL注釋信息過濾,查看請(qǐng)求參數(shù)中是否含有“一”或“‘”等注釋信息,以及數(shù)據(jù)庫(kù)字典表信息,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過;4)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行HTML標(biāo)記過濾,查看請(qǐng)求參數(shù)中是否HTML標(biāo)記的信息,“〈iframe〉”等HTML標(biāo)記或“alert ( ‘ ’)” JAVASCRIPT腳本函數(shù)等信息,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過。對(duì)上述公共頁(yè)面資源進(jìn)行訪問請(qǐng)求時(shí),這部分安全驗(yàn)證服務(wù)可以単獨(dú)包裝為ー個(gè)獨(dú)立的ApplusSaftFilter.jar,移植到任意JavaEE應(yīng)用系統(tǒng)。步驟Sll中,如果業(yè)務(wù)請(qǐng)求為認(rèn)證頁(yè)面資源訪問請(qǐng)求,步驟(2)中進(jìn)行安全驗(yàn)證服務(wù)的具體方式如圖4所示:①服務(wù)器端接收到客戶端發(fā)送的認(rèn)證頁(yè)面資源訪問請(qǐng)求,對(duì)請(qǐng)求進(jìn)行解密處理;②對(duì)解密后的請(qǐng)求參數(shù)進(jìn)行非法信息過濾驗(yàn)證,若非法信息過濾驗(yàn)證通過則安全驗(yàn)證通過,若非法非法信息過濾驗(yàn)證沒有通過則安全驗(yàn)證失敗。其中,步驟②中進(jìn)行非法信息過濾驗(yàn)證的具體方式也是采用對(duì)請(qǐng)求參數(shù)進(jìn)行安全驗(yàn)證過濾實(shí)現(xiàn)安全驗(yàn)證服務(wù),具體方式如下:I)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行數(shù)據(jù)庫(kù)權(quán)限提升指令過濾,查看請(qǐng)求參數(shù)中是否含有數(shù)據(jù)庫(kù)權(quán)限提升指令信息,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過;2)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行操作系統(tǒng)指令和安全過濾,查看請(qǐng)求參數(shù)中是否含有操作系統(tǒng)指令或文件系統(tǒng)信息,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過;3)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行SQL注釋信息過濾,查看請(qǐng)求參數(shù)中是否含有“一”或“‘”等注釋信息,以及數(shù)據(jù)庫(kù)字典表信息,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過;4)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行HTML標(biāo)記過濾,查看請(qǐng)求參數(shù)中是否HTML標(biāo)記的信息,“〈iframe〉”等HTML標(biāo)記或“alert ( ‘ ’)” JAVASCRIPT腳本函數(shù)等信息,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過。對(duì)認(rèn)證頁(yè)面資源訪問請(qǐng)求進(jìn)行安全驗(yàn)證服務(wù)時(shí),認(rèn)證頁(yè)面資源是采用對(duì)請(qǐng)求參數(shù)進(jìn)行加密處理,實(shí)現(xiàn)對(duì)sessionID,參數(shù)等信息的保護(hù),達(dá)到安全驗(yàn)證處理的目的。這部分安全驗(yàn)證服務(wù)適用于A++應(yīng)用系統(tǒng),用戶登錄后的權(quán)限認(rèn)證頁(yè)面發(fā)送請(qǐng)求,在請(qǐng)求發(fā)送前先進(jìn)行加密保護(hù)處理,包括sessionID,參數(shù)等信息,進(jìn)行base64加密;請(qǐng)求合法驗(yàn)證判斷;非法請(qǐng)求則返回非法頁(yè)面;
解密處理,進(jìn)行base64解密;非法過濾驗(yàn)證處理;通過非法過濾驗(yàn)證后,進(jìn)行相應(yīng)的業(yè)務(wù)處理,否則返回非法頁(yè)面;業(yè)務(wù)處理完畢后返回處理結(jié)果。本發(fā)明所述的方法在原有A++應(yīng)用系統(tǒng)的平臺(tái)上做安全驗(yàn)證服務(wù)擴(kuò)展部署,通過在A++應(yīng)用平臺(tái)上進(jìn)行安全驗(yàn)證服務(wù)擴(kuò)展部署后,即可實(shí)現(xiàn)對(duì)A++應(yīng)用系統(tǒng)所有子系統(tǒng)的安全加固。在子系統(tǒng)中采用非平臺(tái)技術(shù)的自定義開發(fā)技術(shù)需要引用安全驗(yàn)證服務(wù),達(dá)到安全加固的目的。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其同等技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,包括以下步驟: (1)客戶端根據(jù)業(yè)務(wù)需要向服務(wù)器端發(fā)送業(yè)務(wù)請(qǐng)求;所述的業(yè)務(wù)請(qǐng)求中包括所要請(qǐng)求的業(yè)務(wù)的請(qǐng)求參數(shù); (2)服務(wù)器端對(duì)接收到的請(qǐng)求進(jìn)行安全驗(yàn)證服務(wù),檢驗(yàn)安全驗(yàn)證是否通過,若通過則根據(jù)客戶端的業(yè)務(wù)請(qǐng)求進(jìn)行業(yè)務(wù)處理;若未通過則安全驗(yàn)證失?。? (3)將處理結(jié)果返回給客戶端。
2.如權(quán)利要求1所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,其特征在于:步驟(1)中,所述業(yè)務(wù)請(qǐng)求包括公共頁(yè)面資源訪問請(qǐng)求和認(rèn)證頁(yè)面資源訪問請(qǐng)求;所述公共頁(yè)面資源是指不需要登錄系統(tǒng)訪問的頁(yè)面資源;所述認(rèn)證頁(yè)面資源是指在登錄系統(tǒng)后經(jīng)過權(quán)限認(rèn)證許可后才可以訪問的頁(yè)面資源。
3.如權(quán)利要求1所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,其特征在于:步驟(2)中,所述的進(jìn)行業(yè)務(wù)處理是指根據(jù)客戶端的業(yè)務(wù)請(qǐng)求指令,在通過安全驗(yàn)證后的業(yè)務(wù)邏輯處理;所述的安全驗(yàn)證失敗是指響應(yīng)非法頁(yè)面。
4.如權(quán)利要求1至3 之一所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,其特征在于:步驟(I)中,所述業(yè)務(wù)請(qǐng)求的請(qǐng)求參數(shù)包括:所請(qǐng)求的頁(yè)面資源的類型、登錄參數(shù)信息、動(dòng)態(tài)頁(yè)面地址信息以及請(qǐng)求返回的記錄總數(shù)和記錄偏移。
5.如權(quán)利要求4所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,其特征在于:步驟(I)中,如果業(yè)務(wù)請(qǐng)求為公共頁(yè)面資源訪問請(qǐng)求,步驟(2)中,通過對(duì)請(qǐng)求參數(shù)進(jìn)行安全驗(yàn)證過濾實(shí)現(xiàn)安全驗(yàn)證服務(wù),具體方式如下: 1)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行數(shù)據(jù)庫(kù)權(quán)限提升指令過濾,查看請(qǐng)求參數(shù)中是否含有數(shù)據(jù)庫(kù)權(quán)限提升指令,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過; 2)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行操作系統(tǒng)指令和安全過濾,查看請(qǐng)求參數(shù)中是否含有操作系統(tǒng)指令,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過; 3)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行SQL注入信息過濾,查看請(qǐng)求參數(shù)中是否含有SQL注入信息,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過; 4)對(duì)公共頁(yè)面資源訪問請(qǐng)求進(jìn)行HTML標(biāo)記過濾,查看請(qǐng)求參數(shù)中是否含有HTML標(biāo)記,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過。
6.如權(quán)利要求4所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,其特征在于:步驟(I)中,如果業(yè)務(wù)請(qǐng)求為認(rèn)證頁(yè)面資源訪問請(qǐng)求,客戶端發(fā)送認(rèn)證頁(yè)面資源訪問請(qǐng)求時(shí)對(duì)其請(qǐng)求參數(shù)進(jìn)行加密處理。
7.如權(quán)利要求6所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,其特征在于:步驟(I)中,如果業(yè)務(wù)請(qǐng)求為認(rèn)證頁(yè)面資源訪問請(qǐng)求,步驟(2)中進(jìn)行安全驗(yàn)證服務(wù)的具體方式如下: ①服務(wù)器端接收到客戶端發(fā)送的認(rèn)證頁(yè)面資源訪問請(qǐng)求,對(duì)請(qǐng)求進(jìn)行解密處理; ②對(duì)解密后的請(qǐng)求參數(shù)進(jìn)行非法信息過濾驗(yàn)證,若非法信息過濾驗(yàn)證通過則安全驗(yàn)證通過,若非法信息過濾驗(yàn)證沒有通過則安全驗(yàn)證失敗。
8.如權(quán)利要求7所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,其特征在于:步驟②中對(duì)請(qǐng)求參數(shù)進(jìn)行非法信息過濾驗(yàn)證的具體方式為: I)對(duì)認(rèn)證頁(yè)面資源訪問請(qǐng)求進(jìn)行數(shù)據(jù)庫(kù)權(quán)限提升指令過濾,查看請(qǐng)求參數(shù)中是否含有數(shù)據(jù)庫(kù)權(quán)限提升指令,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過; 2)對(duì)認(rèn)證頁(yè)面資源訪問請(qǐng)求進(jìn)行操作系統(tǒng)指令和安全過濾,查看請(qǐng)求參數(shù)中是否含有操作系統(tǒng)指令,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過; 3)對(duì)認(rèn)證頁(yè)面資源訪問請(qǐng)求進(jìn)行SQL注入信息過濾,查看請(qǐng)求參數(shù)中是否含有SQL注入信息,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過; 4)對(duì)認(rèn)證頁(yè)面資源訪問請(qǐng)求進(jìn)行HTML標(biāo)記過濾,查看請(qǐng)求參數(shù)中是否含有HTML標(biāo)記,若是則說明安全驗(yàn)證失敗,若否則說明驗(yàn)證通過。
9.如權(quán)利要求8所述的ー種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,其特征在于:采用base64對(duì)請(qǐng)求參數(shù)進(jìn)行加 密處理。
全文摘要
本發(fā)明公開了一種基于JavaEE應(yīng)用系統(tǒng)的安全加固方法,該方法通過在系統(tǒng)應(yīng)用平臺(tái)上進(jìn)行安全驗(yàn)證服務(wù)擴(kuò)展部署對(duì)系統(tǒng)進(jìn)行安全加固。首先,客戶端根據(jù)業(yè)務(wù)需要向服務(wù)器端發(fā)送請(qǐng)求;然后服務(wù)器端對(duì)接收到的請(qǐng)求進(jìn)行安全驗(yàn)證服務(wù),若安全驗(yàn)證服務(wù)通過則對(duì)客戶端的請(qǐng)求進(jìn)行處理,將處理結(jié)果返回給客戶端;若安全驗(yàn)證服務(wù)沒有通過則將驗(yàn)證失敗的處理結(jié)果返回給客戶端。通過本發(fā)明所述的方法能夠解決系統(tǒng)中所存在安全漏洞問題,提高系統(tǒng)安全性。
文檔編號(hào)G06F21/57GK103117998SQ201210494988
公開日2013年5月22日 申請(qǐng)日期2012年11月28日 優(yōu)先權(quán)日2012年11月28日
發(fā)明者左冬發(fā), 劉小勇 申請(qǐng)人:北京用友政務(wù)軟件有限公司