一種針對(duì)非授權(quán)訪問的安全防范方法
【專利摘要】本發(fā)明公開了一種針對(duì)非授權(quán)訪問的安全防范方法,根據(jù)服務(wù)器Session信息判斷用戶是否登錄,如果沒有登錄,轉(zhuǎn)向登錄界面;如果已經(jīng)登錄,進(jìn)一步進(jìn)行權(quán)限檢查;從服務(wù)端Session內(nèi)獲取當(dāng)前用戶的登錄信息;根據(jù)當(dāng)前用戶的登錄信息,從權(quán)限平臺(tái)獲取當(dāng)前用戶可以訪問的權(quán)限列表;根據(jù)用戶請(qǐng)求的Action方法的注解,獲取請(qǐng)求對(duì)應(yīng)的菜單Code和按鈕Code;檢查用戶請(qǐng)求的菜單Code和按鈕Code是否在用戶的授權(quán)列表中,如果用戶的請(qǐng)求不再授權(quán)列表中,拋出越權(quán)操作異常;提示用戶因越權(quán)操作請(qǐng)求失效。本發(fā)明是一種簡(jiǎn)單高效的安全防范方法。
【專利說明】一種針對(duì)非授權(quán)訪問的安全防范方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于企業(yè)安全領(lǐng)域,具體地說是一種針對(duì)非授權(quán)訪問的安全防范方法。
【背景技術(shù)】
[0002]企業(yè)應(yīng)用的權(quán)限控制往往決定登錄用戶可以使用哪些菜單和按鈕,對(duì)于未授權(quán)的菜單和按鈕,系統(tǒng)一般采用隱藏或者灰化處理,使得用戶無(wú)法點(diǎn)擊,從而達(dá)到權(quán)限控制的目的。
[0003]在J2EE框架下,客戶端和服務(wù)器之間采用HTTP協(xié)議進(jìn)行通信,HTTP協(xié)議的多次請(qǐng)求之間無(wú)法保持TCP的會(huì)話,只能使用HTTP頭中的session信息進(jìn)行標(biāo)識(shí),因此就為用戶提供了偽造非法HTTP請(qǐng)求達(dá)到越權(quán)操作的可能性。
[0004]一般的攻擊步驟如圖1所示:
1、用戶通過瀏覽器在服務(wù)端進(jìn)行登錄操作,輸入正確的用戶名密碼進(jìn)行登錄。
[0005]2、服務(wù)端對(duì)用戶名密碼進(jìn)行驗(yàn)證通過,在服務(wù)端建立相應(yīng)的session信息記錄當(dāng)前用戶的登錄狀態(tài),并且根據(jù)登錄用戶的權(quán)限顯示相應(yīng)的操作界面,將用戶無(wú)法使用的菜單和按鈕進(jìn)行隱藏或者灰化處理,使用戶無(wú)法使用。
[0006]3、用戶在權(quán)限下進(jìn)行正常業(yè)務(wù)操作,瀏覽器會(huì)將相應(yīng)的session信息帶上作為該用戶登錄的標(biāo)識(shí)。
[0007]4、服務(wù)器根據(jù)瀏覽器提供的session信息判斷用戶是否登錄,對(duì)于已經(jīng)登錄的用戶,響應(yīng)服務(wù)端的請(qǐng)求,執(zhí)行相應(yīng)的業(yè)務(wù)查詢或操作。
[0008]5、用戶將瀏覽器的session信息復(fù)制到惡意程序中,并且通過惡意程序拼裝HTTP請(qǐng)求權(quán)限外的操作。
[0009]6、服務(wù)器根據(jù)客戶端提供的session信息判斷用戶已登錄,后臺(tái)服務(wù)對(duì)用戶的越權(quán)請(qǐng)求進(jìn)行響應(yīng),執(zhí)行相應(yīng)的業(yè)務(wù)查詢或操作。
[0010]如果需要防范上述的攻擊方式,就需要在前臺(tái)權(quán)限控制的基礎(chǔ)上再進(jìn)行后臺(tái)權(quán)限驗(yàn)證,目前后臺(tái)權(quán)限驗(yàn)證的方法存在著這樣的一些弊端:
1.后臺(tái)授權(quán)的主體和前臺(tái)不一致,前臺(tái)面向菜單和按鈕,后臺(tái)面向數(shù)據(jù)庫(kù)表或者面向后臺(tái)方法,存在重復(fù)授權(quán)的工作,并且存在用戶前后臺(tái)權(quán)限不一致的隱患。
[0011]2.后臺(tái)增加很多權(quán)限驗(yàn)證代碼,權(quán)限驗(yàn)證代碼和業(yè)務(wù)代碼混雜在一起,增加了代碼復(fù)雜度和編碼工作量,也增加了出現(xiàn)bug的隱患。
【發(fā)明內(nèi)容】
[0012]針對(duì)現(xiàn)有技術(shù)中用戶手動(dòng)拼裝HTTP請(qǐng)求進(jìn)行非授權(quán)訪問的攻擊方式,本發(fā)明的目的是提供一種針對(duì)非授權(quán)訪問的安全防范方法,該方法在后臺(tái)進(jìn)行用戶權(quán)限控制,在后臺(tái)權(quán)限校驗(yàn)中,將后臺(tái)權(quán)限校驗(yàn)和業(yè)務(wù)代碼剝離,減少代碼工作量,提高代碼可讀性,也減少bug出現(xiàn)的幾率。是一種簡(jiǎn)單高效的安全防范方法。
[0013]本發(fā)明的目的是通過以下技術(shù)方案來(lái)實(shí)現(xiàn)的: 一種針對(duì)非授權(quán)訪問的安全防范方法,其特征在于該方法包括以下步驟:
1)根據(jù)服務(wù)器Session信息判斷用戶是否登錄,如果沒有登錄,轉(zhuǎn)向登錄界面;如果已經(jīng)登錄,進(jìn)一步進(jìn)行權(quán)限檢查;
2)從服務(wù)端Session內(nèi)獲取當(dāng)前用戶的登錄信息;
3)根據(jù)當(dāng)前用戶的登錄信息,從權(quán)限平臺(tái)獲取當(dāng)前用戶可以訪問的權(quán)限列表;權(quán)限列表包括菜單以及該菜單中的按鈕。
[0014]4)根據(jù)用戶請(qǐng)求的Action方法的注解,獲取請(qǐng)求對(duì)應(yīng)的菜單Code和按鈕Code ;
5)檢查用戶請(qǐng)求的菜單Code和按鈕Code是否在用戶的授權(quán)列表中,如果在則通過權(quán)限檢查,調(diào)用Action方法進(jìn)行業(yè)務(wù)查詢或處理;如果用戶的請(qǐng)求不再授權(quán)列表中,則說明這是繞過前臺(tái)權(quán)限控制的越權(quán)操作,服務(wù)器拋出越權(quán)操作異常;
6)系統(tǒng)框架捕捉越權(quán)異常,組織出錯(cuò)信息,返回給客戶端,提示用戶因越權(quán)操作請(qǐng)求失效。
[0015]本發(fā)明是一種J2EE框架下針對(duì)非授權(quán)訪問的安全防范方法,可以避免用戶采用手動(dòng)拼裝HTTP請(qǐng)求的方法,繞開前臺(tái)權(quán)限控制進(jìn)行越權(quán)操作。本發(fā)明的主要特點(diǎn)在于:將權(quán)限平臺(tái)中的菜單CODE和按鈕CODE和J2EE框架中Action類中的方法建立關(guān)聯(lián)關(guān)系,基于Java注解(Annotation)的方式實(shí)現(xiàn)J2EE框架中的后臺(tái)權(quán)限控制。
[0016]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下特點(diǎn):
1、將企業(yè)應(yīng)用中的授權(quán)相關(guān)功能統(tǒng)一使用權(quán)限平臺(tái)進(jìn)行管理,基于菜單和按鈕進(jìn)行授權(quán),無(wú)需企業(yè)的每個(gè)應(yīng)用單獨(dú)配置權(quán)限。
[0017]2、將企業(yè)應(yīng)用中的后臺(tái)方法和權(quán)限平臺(tái)中授權(quán)的菜單/按鈕通過菜單Code和按鈕Code建立關(guān)聯(lián)關(guān)系,無(wú)須管理員為后臺(tái)權(quán)限控制重復(fù)授權(quán),減少授權(quán)工作量。
[0018]本發(fā)明基于Java Annotation,在企業(yè)應(yīng)用的后臺(tái)權(quán)限校驗(yàn)中,將后臺(tái)權(quán)限校驗(yàn)和業(yè)務(wù)代碼剝離,減少程序員代碼工作量,提高代碼可讀性,也減少開發(fā)過程中bug出現(xiàn)的幾
率,安全、簡(jiǎn)單高效。
【專利附圖】
【附圖說明】
[0019]圖1是現(xiàn)有技術(shù)中越權(quán)操作攻擊時(shí)序圖。
[0020]圖2是本發(fā)明的實(shí)施示意圖。
【具體實(shí)施方式】
[0021]一種針對(duì)非授權(quán)訪問的安全防范方法,圖2是本發(fā)明的實(shí)施示意圖。該方法包括以下步驟:
I)根據(jù)服務(wù)器Session信息判斷用戶是否登錄,如果沒有登錄,轉(zhuǎn)向登錄界面;如果已經(jīng)登錄,進(jìn)一步進(jìn)行權(quán)限檢查。
[0022]2)從服務(wù)端Session內(nèi)獲取當(dāng)前用戶的登錄信息。
[0023]3)根據(jù)當(dāng)前用戶的登錄信息,從權(quán)限平臺(tái)獲取當(dāng)前用戶可以訪問的權(quán)限列表,包括哪些菜單以及那些菜單的哪些按鈕。
[0024]4)根據(jù)用戶請(qǐng)求的Action方法的注解(Annotation),獲取請(qǐng)求對(duì)應(yīng)的菜單Code和按鈕Code。[0025]5)檢查用戶請(qǐng)求的菜單Code和按鈕Code是否在用戶的授權(quán)列表中,如果在則通過權(quán)限檢查,調(diào)用Action方法進(jìn)行業(yè)務(wù)查詢或處理。如果用戶的請(qǐng)求不再授權(quán)列表中,則說明這是繞過前臺(tái)權(quán)限控制的越權(quán)操作,服務(wù)器拋出越權(quán)操作異常。
[0026]6)系統(tǒng)框架捕捉越權(quán)異常,組織出錯(cuò)信息,返回給客戶端,提示用戶因越權(quán)操作請(qǐng)求失效。
[0027]在這樣的后臺(tái)權(quán)限框架下使用惡意軟件進(jìn)行攻擊,如果用戶無(wú)法提供登錄Session信息,會(huì)在第I)步被重定向到登錄界面;如果用戶可以提供登錄session信息,但是請(qǐng)求的是權(quán)限外的操作,會(huì)在第5)步被檢測(cè)出來(lái)并轉(zhuǎn)到第6步,服務(wù)器最終會(huì)給出提示越權(quán)操作,請(qǐng)求失效。
【權(quán)利要求】
1.一種針對(duì)非授權(quán)訪問的安全防范方法,其特征在于該方法包括以下步驟: I)根據(jù)服務(wù)器Session信息判斷用戶是否登錄,如果沒有登錄,轉(zhuǎn)向登錄界面;如果已經(jīng)登錄,進(jìn)一步進(jìn)行權(quán)限檢查; 從服務(wù)端Session內(nèi)獲取當(dāng)前用戶的登錄信息; 3)根據(jù)當(dāng)前用戶的登錄信息,從權(quán)限平臺(tái)獲取當(dāng)前用戶可以訪問的權(quán)限列表; 4)根據(jù)用戶請(qǐng)求的Action方法的注解,獲取請(qǐng)求對(duì)應(yīng)的菜單Code和按鈕Code; 檢查用戶請(qǐng)求的菜單Code和按鈕Code是否在用戶的授權(quán)列表中,如果在則通過權(quán)限檢查,調(diào)用Action方法進(jìn)行業(yè)務(wù)查詢或處理;如果用戶的請(qǐng)求不再授權(quán)列表中,則說明這是繞過前臺(tái)權(quán)限控制的越權(quán)操作,拋出越權(quán)操作異常; 系統(tǒng)框架捕捉越權(quán)異常,組織出錯(cuò)信息,返回給客戶端,提示用戶因越權(quán)操作請(qǐng)求失效。
2.根據(jù)權(quán)利要求1所述的針對(duì)非授權(quán)訪問的安全防范方法,其特征在于:步驟3)中,權(quán)限列表包括菜單以及該菜單中的按鈕。
【文檔編號(hào)】H04L29/06GK103731434SQ201410025892
【公開日】2014年4月16日 申請(qǐng)日期:2014年1月21日 優(yōu)先權(quán)日:2014年1月21日
【發(fā)明者】劉漢理, 王全強(qiáng), 王青國(guó) 申請(qǐng)人:國(guó)家電網(wǎng)公司, 江蘇省電力公司, 江蘇電力信息技術(shù)有限公司