国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

互聯(lián)網(wǎng)下銀行客戶信息及資金安全保障——基于SpringMVC集成Shiro框架維護信息安全

2019-10-15 03:28司婷婷郭文靜
關(guān)鍵詞:框架架構(gòu)對象

◆司婷婷 郭文靜

互聯(lián)網(wǎng)下銀行客戶信息及資金安全保障——基于SpringMVC集成Shiro框架維護信息安全

◆司婷婷 郭文靜

(中國人民大學信息學院 北京 100089)

本文基于SpringMVC與Shiro框架,介紹了銀行系統(tǒng)架構(gòu)中的信息安全性維護方法。設(shè)計一種以SpringMVC為基礎(chǔ)集成Shiro框架的系統(tǒng)架構(gòu),并介紹了shiro框架在用戶認證及權(quán)限管理方法的原理及應(yīng)用方法。通過Shiro框架的認證管理器及授權(quán)管理器模型,可以降低開發(fā)難度,拓展到多種以Java-web為原理的系統(tǒng)開發(fā)中。

SpringMVC;Shiro;安全維護;權(quán)限管理

1 概述

隨著信息技術(shù)越來越多地被應(yīng)用于銀行的各項業(yè)務(wù),銀行面臨的信息技術(shù)安全隱患也在日益增加。2017年僅Equifax一家機構(gòu)泄露的美國公民私人信息就高達1.43億條?!稊?shù)據(jù)泄露水平指數(shù)調(diào)查報告》顯示,2017年全球被泄或被盜的數(shù)據(jù)為26億條,同比增加88%,其中涉及金融服務(wù)的財務(wù)、賬號數(shù)據(jù)泄露數(shù)量巨大,這為企業(yè)尤其是銀行數(shù)據(jù)保護敲響了警鐘[1]。

盡管國家已經(jīng)出臺相關(guān)法律法規(guī)規(guī)范信息安全,但是其權(quán)威性和實際管理力度還不夠。近年來,使用用戶信息從事違法犯罪的行為屢禁不止,如何保障用戶信息及資金安全已成為互聯(lián)網(wǎng)時代銀行面臨的巨大挑戰(zhàn)之一。

目前,大型銀行的數(shù)據(jù)存儲相對封閉,直接入侵攻擊系統(tǒng)難度大,可能性低,但隨著互聯(lián)網(wǎng)發(fā)展,越來越多的應(yīng)用系統(tǒng)被利用在業(yè)務(wù)的各個流程中,用戶的各種信息通過開放的網(wǎng)絡(luò)IP進行傳輸,使得大型商業(yè)銀行不得不面臨網(wǎng)絡(luò)攻擊、病毒侵擾、非法竊取賬戶信息、客戶信息泄露等新的信息安全問題[2]。在信息的高速公路上,需要多方設(shè)卡,才能保障用戶信息及資金的安全。

除了傳統(tǒng)的SQL注入、DDOS等常見攻擊,APT高級持續(xù)威脅等新型攻擊方式也愈演愈烈[3]。

伴隨互聯(lián)網(wǎng)的高速發(fā)展,新技術(shù)新框架層出不窮,如果在保證安全穩(wěn)定性的同時應(yīng)用技術(shù)解決現(xiàn)有困境已經(jīng)成為亟須解決的問題。

本文主要討論現(xiàn)有WEB框架中較為流行及安全的SpringMVC框架與Shiro安全框架如何集成,在用戶認證和權(quán)限管理方面做好安全信息的維護。

2 相關(guān)技術(shù)介紹

2.1 Spring與SpringMVC框架

Spring框架是RodJohnson、JuergenHoeller等開發(fā)的用于支持JavaBean構(gòu)件運行的容器。該框架提供了依賴注入方式的構(gòu)件組裝機制和基于AOP技術(shù)的事務(wù)和日志管理等功能[4,5]?;赟pring框架的輕量級J2EE架構(gòu)能夠發(fā)揮上述兩種架構(gòu)方案的優(yōu)勢,避免它們存在的缺陷,是一種成熟的J2EE應(yīng)用開發(fā)方案[6]。

Spring提供了一個以統(tǒng)一的、高效的方式構(gòu)造整個應(yīng)用的方法。Spring可以將單層框架以最佳的組合糅合在一起建立一個連貫的體系,通過IOC和AOP模式整合對象資源。通過Spring框架,開發(fā)者無須理解更深層次的耦合調(diào)用關(guān)系,簡單配置即可進行項目開發(fā)??梢哉fSpring是一個提供了更完善開發(fā)環(huán)境的一個框架,整合了一切優(yōu)秀資源可對外提供統(tǒng)一服務(wù),可以為POJO(PlainOrdinaryJavaObject)對象提供企業(yè)級的服務(wù)。

Spring整合了傳統(tǒng)的MVC框架,將模型(model)、視圖(view)、控制器(controller)與Spring的對象相結(jié)合,構(gòu)建了一個功能全面的Web應(yīng)用MVC框架。

SpringMVC框架是Spring基于MVC設(shè)計模型的用于構(gòu)建Web應(yīng)用程序的一種實現(xiàn)。在Web應(yīng)用開發(fā)過程中,SpringMVC框架容納了包括JSP在內(nèi)的大量視圖技術(shù),可以靈活配置[7]。SpringMVC無須中間整合層來整合,即使用了MVC架構(gòu)模式的思想,將Web層進行職責解耦?;谡埱篁?qū)動指的就是使用請求-響應(yīng)模型,簡化了開發(fā)的步驟與難度。

2.2 SpringMVC框架的調(diào)用過程

SpringMVC由五大核心組件構(gòu)成,分為:

(1)DispatcherServlet:前端控制器,處理請求的入口。

(2)HandlerMapping:映射器對象,用于管理url與對應(yīng)controller的映射關(guān)系。

(3)Controller:后端控制器,負責處理請求的控制邏輯。

(4)ModelAndView:模型,封裝業(yè)務(wù)處理結(jié)果和視圖。

(5)ViewResolver:視圖解析器,解析對應(yīng)的視圖關(guān)系(前綴+view+后綴)。

客戶端發(fā)出請求后經(jīng)由DispatcherServlet攔截對請求進行處理,找到對應(yīng)的請求入口,通過不同的入口找到對應(yīng)的映射器對象,根據(jù)url匹配相應(yīng)的controller對象,controller對象經(jīng)由service-dao-service-controller的路徑對請求進行業(yè)務(wù)處理,并將結(jié)果封裝為ModelAndView,通過view路徑匹配ViewResolver,解析需要返回的model對象以及匹配正確的視圖頁面。

圖1 SpringMVC系統(tǒng)調(diào)用過程

3 Spring集成Shiro框架

3.1 Shiro框架介紹

Shiro是apache旗下一個開源安全框架,它將軟件系統(tǒng)的安全認證相關(guān)的功能抽取出來,實現(xiàn)用戶身份認證,權(quán)限授權(quán)、加密、會話管理等功能,組成了一個通用的安全認證框架。相對其他同類安全軟件,其本身具有良好的健壯性和易用性。Shiro提供了認證、授權(quán)、會話管理、加密等功能,可以為學校、企業(yè)和政府機關(guān)等機構(gòu)提供信息安全解決方案[8]。同時,Shiro本身集成了許多保護Java應(yīng)用的特性,如支持Web應(yīng)用、線程和并發(fā)、緩存機制和測試工具等。與其他安全框架相比,Shiro的安全認證和授權(quán)方式比較簡潔且容易操作,編寫的代碼量顯著減少[9]。在Web項目中使用Shiro就可以非常快速地完成認證、授權(quán)等功能的開發(fā),降低系統(tǒng)成本。

圖2 Shiro框架架構(gòu)圖

通過Shiro框架進行權(quán)限管理時,涉及的一些核心對象,主要包括:

認證管理對象,授權(quán)管理對象,會話管理對象,緩存管理對象,加密管理對象以及Realm管理對象(領(lǐng)域?qū)ο螅贺撠熖幚碚J證和授權(quán)領(lǐng)域的數(shù)據(jù)訪問問題)。

(1)Subject(org.apache.Shiro.subject.Subject):與軟件交互的一個特定的實體(用戶、第三方服務(wù)等)。

(2)SecurityManager(org.apache.Shiro.mgt.SecurityManager):Shiro的核心,用來協(xié)調(diào)管理組件工作。

(3)Authenticator(org.apache.Shiro.authc.Authenticator)

Authenticator負責執(zhí)行認證操作。

(4)Authorizer(org.apache.Shiro.authz.Authorizer):負責授權(quán)檢測。

SessionManager(org.apache.Shiro.session.mgt.SessionManager):負責創(chuàng)建并管理用戶Session生命周期,提供一個強有力的Session體驗。

SessionDAO(org.apache.Shiro.session.mgt.eis.SessionDAO):代表SessionManager執(zhí)行Session持久(CRUD)動作,它允許任何存儲的數(shù)據(jù)掛接到session管理基礎(chǔ)上。

CacheManager(org.apache.Shiro.cache.CacheManager):提供創(chuàng)建緩存實例和管理緩存生命周期的功能。

Cryptography(org.apache.Shiro.crypto.*):提供了加密方式的設(shè)計及管理。

Realms(org.apache.Shiro.realm.Realm):是Shiro和應(yīng)用程序安全數(shù)據(jù)之間的橋梁。

3.2 Shiro框架認證流程

在實際項目中我們需要控制用戶訪問資源權(quán)限,如部分資源無須登錄可以訪問,部分資源需要登錄驗證成功用戶信息后可訪問,不同權(quán)限的用戶訪問的資源又有所不同,Shiro框架為此類業(yè)務(wù)提供了一套成熟的解決方案。

在業(yè)務(wù)流程的認證操作節(jié)點中,通過使用Shiro框架,可以對用戶名與密碼進行核實,進行身份認證,具體的流程為:

(1)系統(tǒng)調(diào)用subject的login方法將用戶信息提交給SecurityManager。

(2)SecurityManager將認證操作委托給認證器對象Authenticator。

(3)Authenticator將身份信息傳遞給Realm。

(4)Realm訪問數(shù)據(jù)庫獲取用戶信息然后對信息進行封裝并返回。

(5)Authenticator對Realm返回的信息進行身份認證,在認證流程中,Realm的定義至關(guān)重要。

3.3 Shiro框架的授權(quán)流程

授權(quán)一般指允許who(Subject)對what(Resource)執(zhí)行how(Permission)操作。其中Resource指系統(tǒng)中的資源,一般會對應(yīng)一個Url,這個Url的表現(xiàn)一般為菜單。Permission是對資源的訪問標識(例如user:add,user:update,user:delete,user:view)。

用戶進行資源訪問時除了需要進行身份認證,授權(quán)認證也是必不可少的一步,同一系統(tǒng)下的不同用戶應(yīng)具備不同的資源訪問權(quán)限,Shiro通過框架權(quán)限認證流程可以對不同的資源與權(quán)限進行匹配,做到不同權(quán)限訪問不同資源。具體的權(quán)限認證流程為:

(1)系統(tǒng)調(diào)用subject相關(guān)方法將用戶信息(例如isPermitted)遞交給SecurityManager。

(2)SecurityManager將權(quán)限檢測操作委托給Authorizer對象。

(3)Authorizer將用戶信息委托給Realm。

(4)Realm訪問數(shù)據(jù)庫獲取用戶權(quán)限信息并封裝。

(5)Authorizer對用戶授權(quán)信息進行判定。

在權(quán)限認證中,分別可以通過對角色的控制或?qū)Y源的控制進行權(quán)限認證,其中基于角色的訪問(RBAC-Role-BasedAccessControl)控制擴展性相對較差,基于資源的訪問控制(RBAC-Resource-BasedAccessControl)擴展性比較好。

在使用RBAC時,實際應(yīng)用中又分粗粒度權(quán)限控制和細粒度的權(quán)限控制,粗粒度一般指對資源類型的訪問控制(例如用戶可以導(dǎo)出所有訂單明細),細粒度一般對具體某個資源實例的訪問控制(例如只能導(dǎo)出自己工資信息),對于粗粒度的權(quán)限控制可以使用過濾器或Spring攔截器都可以,對于細粒度的權(quán)限控制一般都會在業(yè)務(wù)層進行相關(guān)判定。

4 銀行系統(tǒng)產(chǎn)品架構(gòu)設(shè)計及代碼實現(xiàn)

4.1 項目整體架構(gòu)設(shè)計

目前,銀行系統(tǒng)基于獨特的業(yè)務(wù)需要及安全性要求,一般使用SpringMVC框架作為基本結(jié)構(gòu),采用分布式系統(tǒng)架構(gòu)。融合集成多種成熟互聯(lián)網(wǎng)技術(shù)完成開發(fā),圖3為常用架構(gòu)設(shè)計。具體訪問流程為:客戶端可由通過EasyUI、Bootstrap、Html5等開發(fā)的客戶端頁面發(fā)起請求,請求數(shù)據(jù)采用json格式,利用http傳輸,通過負載均衡與代理將請求轉(zhuǎn)發(fā)到相應(yīng)的服務(wù)器。在服務(wù)層中,以SpringMVC為基礎(chǔ)框架,配置session處理對話信息,log4j處理日志信息,Shiro進行安全控制,Dubbo實現(xiàn)生產(chǎn)者消費者之間的動態(tài)調(diào)用,解決強耦合的問題,并提升訪問速度,避免高并發(fā)可能造成的問題。在數(shù)據(jù)層,采用Oracle數(shù)據(jù)庫存儲數(shù)據(jù),使用Mybatis框架訪問數(shù)據(jù)庫,并配合Redis減輕數(shù)據(jù)庫壓力,提高并發(fā)訪問能力。

圖3 銀行系統(tǒng)產(chǎn)品架構(gòu)設(shè)計圖

4.2 SpringMVC集成Shiro框架

在整個項目框架中,除SpringMVC框架自身的攔截功能外,主要使用Shiro進行安全性的控制,SpringMVC提供了一套成熟的方法集成Shiro框架,具體實現(xiàn)方法為:

(1)添加Shiro依賴。

添加org.apache.shiro下面的shiro-spring及shiro-ehcachejar包。

(2)配置web.xml文件。

配置org.springframework.web.filter.DelegatingFilterProxy下的shiroFilter過濾器,并定義攔截路徑。

(3)添加Spring-Shiro配置文件。

a)引入shiro的核心安全接口。

b)定義要求登錄時的連接。

c)配置shiro連接約束,其中對靜態(tài)資源設(shè)置允許匿名訪問,剩余其他路徑,必須認證通過才可以訪問。

d)配置shiro安全管理器。

e)自定義Realm。

f)配置憑證算法匹配器。

g)定義Shiro生命周期處理器。

h)啟用Shiro注解權(quán)限檢查。

(4)構(gòu)建Realm類。

通過Realm實現(xiàn)基本認證及權(quán)限控制,對于不同的業(yè)務(wù)需求,可以配置多種Realm類,實現(xiàn)多Realm認證。具體實現(xiàn)代碼如下:

5 總結(jié)

本文不僅介紹了SpringMVC框架與Shiro框架,還基于銀行管理系統(tǒng)架構(gòu),詳細說明了SpringMVC框架與Shiro的集成方法。在實際應(yīng)用中,此類技術(shù)被廣泛利用于多種銀行系統(tǒng)中,在一定程度上確保了Web應(yīng)用系統(tǒng)的安全。SpringMVC集成Shiro原理簡單,操作簡捷,降低開發(fā)難度的同時減少了工作量,方便移植到其他Web應(yīng)用系統(tǒng)。此開發(fā)框架對其他Java-Web應(yīng)用系統(tǒng)的認證和訪問控制及安全性控制都有一定的借鑒價值。

[1]趙剛.淺談銀行信息安全存在的問題[J].科技情報開發(fā)與經(jīng)濟,2006(21):115-116.

[2]張俊,余躍.大型商業(yè)銀行核心業(yè)務(wù)系統(tǒng)網(wǎng)絡(luò)攻擊防控的探索與實踐[J].中國金融電腦,2019(03):70-71.

[3]林鵬,張志峰,孫英明.“互聯(lián)網(wǎng)+”時代的信息安全研究[J].金融電子化,2018(7).

[4]JohnsonR,HoellerJ. J2EE Development without EJB[M].北京:電子工業(yè)出版社,2005.

[5]胡啟敏,薛錦云,鐘林輝.依賴注入技術(shù)及其執(zhí)行過程的形式化描述[J].燕山大學學報,2005(7).

[6]胡啟敏,薛錦云,鐘林輝.基于Spring框架的輕量級J2EE架構(gòu)與應(yīng)用[J].計算機工程與應(yīng)用,2008(02):115-118.

[7]AndrewH.Object-orientedanalysisanddesign[M].北京:機械工業(yè)出版社,2003:17-56.

[8]高秀慧,高建華.基于J2EE框架的Web應(yīng)用可靠性研究[J].計算機工程與設(shè)計,2013,34(4):1270-1275.

[9]LIX,XUEY.Asurveyonserver-sideapproachestosecuringWebapplications[J].ACMComputingSurveys,2014,46(4):1-29.

猜你喜歡
框架架構(gòu)對象
基于FPGA的RNN硬件加速架構(gòu)
有機框架材料的后合成交換
框架
曬曬全國優(yōu)秀縣委書記擬推薦對象
功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
構(gòu)建富有活力和效率的社會治理架構(gòu)
攻略對象的心思好難猜
VoLTE時代智能網(wǎng)架構(gòu)演進研究
區(qū)間對象族的可鎮(zhèn)定性分析
關(guān)于原點對稱的不規(guī)則Gabor框架的構(gòu)造