国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
解析J2EE中的安全問題
        現(xiàn)在越來越多的企業(yè)應(yīng)
的框架和服務(wù)的支持.j2ee
等)。本文將介紹j2ee提供
然后結(jié)合具體的實例向讀者
基于j2ee1.3版本的。
用構(gòu)建在j2ee平臺上,這得益于
為企業(yè)應(yīng)用提供了多方面的服務(wù)
的安全服務(wù)。首先介紹j2ee中的
展示如何在程序中應(yīng)用j2ee提供

j2ee為企業(yè)應(yīng)用的開發(fā)提供了良好
(Security、Transaction、Naming
安全概念和j2ee的安全體系架構(gòu),
的安全特性。本文所介紹的內(nèi)容是

  j2ee中的安全概念                                                          
  主體(Principal):
Principal)用主體名作為
名就是用戶的登陸名,驗證
用怎樣的認(rèn)證方法,因此主
主體(Principal)是被在企業(yè)
它的標(biāo)識,通過與主體相關(guān)的驗
數(shù)據(jù)就是登陸的密碼。J2EE規(guī)范
體名和驗證數(shù)據(jù)的內(nèi)容和格式依
安全服務(wù)驗證了的實體。主體(
證數(shù)據(jù)進行驗證。通常情況下主體
中并沒有限定J2EE 產(chǎn)品提供商使
不同的認(rèn)證協(xié)議而不同。

  安全策略域(Security
是一個邏輯范圍或區(qū)域,在
它是從安全策略的角度劃分
伙伴等不同的安全域,對這
Policy Domain):也稱安全域
這一范圍或區(qū)域中安全服務(wù)的管
的區(qū)域。比如可以將企業(yè)應(yīng)用系
些安全區(qū)域采用不同的安全策略
(security domain)或realm,它
理員定義和實施通用的安全策略。
統(tǒng)劃分為企業(yè)員工、供應(yīng)商、合作


  安全技術(shù)域(Security Technology
個安全技術(shù)域中使用同樣的安全機制來執(zhí)
域。
Domain):它是從安全技術(shù)的角度劃分的區(qū)域,在一
行安全策略。一個安全技術(shù)域可以包括多個安全策略


  安全屬性(Security Attributes)
全屬性。安全屬性可用來訪問被保護的資
。J2EE產(chǎn)品提供商或具體的驗證服務(wù)的實
規(guī)范并沒有限定什么樣的安全屬性將與主
:每個主體(Principal)都有一系列與之相關(guān)的安
源,檢查用戶的身份和完成其他一些安全相關(guān)的用途
現(xiàn)來決定怎樣將安全屬性與一個主體聯(lián)系起來。J2EE
體相聯(lián)系。

  憑證(Credential):
。如果成功的通過了驗證,
也可能獲取另一個主體的憑

憑證包含或引用為J2EE系統(tǒng)驗證
主體將獲得一個包括安全屬性的
證。在這種情況下兩個主體在同

一個主體的驗證信息(安全屬性)
憑證。如果被允許的話,一個主體
一安全域中具有相同的安全屬性。



  j2ee的安全體系結(jié)構(gòu)                                                        


  1. 基于容器的安全                                                         

  在j2ee的環(huán)境中,組件的安全是由他
用或者很少在組件中添加有關(guān)安全的代碼
業(yè)級應(yīng)用系統(tǒng)有更好的靈活性和擴展性。
兩種形式的基于容器的安全性-說明性的
們各自的容器來負(fù)責(zé)的,組件的開發(fā)人員幾乎可以不
。這種安全邏輯和業(yè)務(wù)邏輯相對獨立的架構(gòu),使得企
J2ee規(guī)范要求j2ee 產(chǎn)品必須為應(yīng)用程序開發(fā)者提供
安全性和可編程的安全性。

  ● 說明性的安全性                                                           

  說明性的安全性通過安
安全角色,訪問控制和驗證
。部署描述符是組件開發(fā)者
開發(fā)者用它來表示應(yīng)用中的
境中的用戶和組映射起來。
全結(jié)構(gòu)描述的方式來代表應(yīng)用程
要求等。在j2ee平臺中部署描述
和應(yīng)用程序部署者或應(yīng)用程序組
安全需求,應(yīng)用程序部署者或應(yīng)

序的安全需求,安全結(jié)構(gòu)一般包括
符充當(dāng)了說明的安全性的主要工具
裝者之間的交流工具。應(yīng)用程序的
用程序組裝者將安全角色與部署環(huán)


  在程序運行時容器從部
全驗證。說明的安全性不需
符來完成的。
署描述符中提取出相應(yīng)的安全策
要開發(fā)人員編寫任何安全相關(guān)的

略,然后容器根據(jù)安全策略執(zhí)行安
代碼,一切都是通過配置部署描述


  ● 可編程的安全性                                                           

  可編程的安全性在說明
的API來對安全作出決斷。
的。J2ee在EJB EjbConext
個方法:
性的安全性的基礎(chǔ)上,使安全敏
這在說明性的安全性不足以滿足
interface和servlet HttpServl

感的應(yīng)用可以通過調(diào)用被容器提供
企業(yè)的安全模型的情況是非常有用
etRequest interface中各提供兩


  isCallerInRole (EJBContext)                       

  getCallerPrincipal (EJBContext)               

  isUserInRole (HttpServletRequest)           

  getUserPrincipal (HttpServletRequest)   

  這些方法允許組件根據(jù)調(diào)用者或遠(yuǎn)程
將有這些方法的詳細(xì)介紹和例程,以便讀
模型
用戶的安全角色來作出商業(yè)判斷。在文章的后面部分
者更好的理解可編程的安全性的用途。 J2ee的驗證


  身份驗證是用戶或組件調(diào)用者向系統(tǒng)
證信息(通常是用戶名和密碼或者是用戶
安全策略來驗證用戶的身份。
證明其身份的過程。用戶通過某種方式向系統(tǒng)提交驗
的數(shù)字證書),系統(tǒng)用用戶提供的驗證信息和系統(tǒng)的


  ● 用戶的驗證                                                               

  用戶的驗證根據(jù)其客戶
驗證
端類型不同分為兩種:Web 客戶

端的驗證和Application客戶端的


  a. Web 客戶端的驗證                                                   

  Web客戶端通常通過htt
、jsp(java server page
境中,企業(yè)的某些資源往往
此對企業(yè)中各種web資源進
化的需求,j2ee提供了三種
p協(xié)議來請求web服務(wù)器端的資源
)文件、java servlet和其他一
要求只允許某些人訪問,有些資
行訪問控制是十分必要的。為了
基于web客戶端的驗證方式:
,這些web資源通常包括html網(wǎng)頁
些二進制或多媒體文件。在企業(yè)環(huán)
源甚至是機密的或安全敏感的。因
滿足企業(yè)中的不同安全級別和客戶


  ● HTTP基本驗證(HTTP Basic Authentication)   

  HTTP基本驗證 是HTTP協(xié)議所支持的
為驗證信息。Web客戶端從用戶獲取用戶
指定的區(qū)域(realm)中驗證用戶。但需
驗證方法并不對用戶密碼進行加密,而只
務(wù)器對用戶來說也是非驗證過的。不能保
以采用一些安全措施來克服這個弱點。例
VPN技術(shù)。
驗證機制。這種驗證機制使用用戶的用戶名和密碼作
名和密碼,然后傳遞他們給web服務(wù)器,web服務(wù)器在
要注意的是,這種驗證方法是不夠安全的。因為這種
是對密碼進行基本的base64的編碼。而且目標(biāo)web服
證用戶訪問到的web服務(wù)器就是用戶希望訪問的???br>如在傳輸層上應(yīng)用SSL或者在網(wǎng)絡(luò)層上使用IPSEC或


  ● 基于表單的驗證(Form-Based Authentication)     

  基于表單的驗證使系統(tǒng)
本HTTP的驗證方法的唯一區(qū)
驗證方法同樣具有與基本HT
后密碼以明文形式在網(wǎng)路中
容易就可以獲取用戶的密碼
確定這兩種方式的弱點對你
開發(fā)者可以自定義用戶的登陸頁
別就在于它可以根據(jù)用戶的要求
TP驗證類似的不安全的弱點。用
傳遞,如果在網(wǎng)路的某一節(jié)點將
。因此在使用基本HTTP的驗證方
的應(yīng)用是可接受的。
面和報錯頁面。這種驗證方法與基
制定登陸和出錯頁面?;诒韱蔚?br>戶在表單中填寫用戶名和密碼,而
此驗證請求截獲,在經(jīng)過反編碼很
式和基于表單的驗證方法時,一定


  ● 基于客戶端證書的
驗證(Client-Certificate Aut
hentication)

  基于客戶端證書的驗證方式要比上面
保證驗證的安全性。安全套接層(Secure
器端認(rèn)證,信息真實性等方面的安全保證
你可以把這個公鑰證書看作是你的數(shù)字護
構(gòu)(CA)-一個被信任的組織頒發(fā)的。這
準(zhǔn)。如果你指定了這種驗證方式,Web服
。
兩種方式更安全。它通過HTTPS(HTTP over SSL)來
Sockets Layer)為驗證過程提供了數(shù)據(jù)加密,服務(wù)
。在此驗證方式中,客戶端必須提供一個公鑰證書,
照。公鑰證書也稱數(shù)字證書,它是被稱作證書授權(quán)機
個數(shù)字證書必須符合X509公鑰體系結(jié)構(gòu)(PKI)的標(biāo)
務(wù)器將使用客戶端提供的數(shù)字證書來驗證用戶的身份


  b. 應(yīng)用程序客戶端的
驗證(Application Client Use
r Authentication)

  java客戶端程序是執(zhí)行在用戶本地ja
戶可通過java.exe或javaw.exe直接啟動
也擁有main方法,但他們在運行時存在一
運行在自己的容器中。用戶通過容器來執(zhí)
器就有機會在J2ee應(yīng)用程序客戶端被執(zhí)行
的方式來獲取用戶的驗證信息??梢赃x擇
序的用戶的驗證信息,也可以選擇自定義
,應(yīng)用程序開發(fā)者必須提供一個實現(xiàn)了ja
interfce的類,并且在j2ee部署描述文件a
中加入這個類的類名。這樣,當(dāng)系統(tǒng)需要
中的CallbackHandler實現(xiàn)類的類名傳遞
這個實現(xiàn)類。這個類的實例負(fù)責(zé)收集用戶
塊,登陸模塊用這些驗證信息來驗證用戶
用戶輸入來收集用戶驗證信息,也可以是
本地或在線的用戶證書庫來獲取用戶的電

va虛擬機上的java程序,它擁有main方法,通常由用
執(zhí)行。J2ee應(yīng)用程序客戶端與java客戶端程序相似,
定的差別。J2ee應(yīng)用程序客戶端和其他j2ee組件一樣
行J2ee應(yīng)用程序客戶端。這樣J2ee應(yīng)用程序客戶端容
之前完成用戶身份的驗證。J2ee提供了一種可自定義
使用容器提供的缺省的方式來獲取j2ee應(yīng)用客戶端程
的方式來獲取用戶的驗證信息。當(dāng)選擇自定義方式時
vax.security.auth.callback.CallbackHandler
pplication-client.xml中的元素callback-handler
驗證用戶身份時,客戶端程序的容器將部署描述文件
給系統(tǒng)的登陸模塊(驗證模塊),登陸模塊再實例化
驗證信息,并將收集到的用戶驗證信息傳遞給登陸模
。這個實現(xiàn)類可以是具有用戶界面的,或是通過要求
通過命令行來獲取用戶驗證信息,還可能是通過讀取
子證書。選取哪種方式取決于驗證信息的存儲方式。

  有些j2ee產(chǎn)品廠商把容
務(wù)集成起來,從而在一定的
器的驗證服務(wù)和本地系統(tǒng)的驗證
應(yīng)用系統(tǒng)的范圍內(nèi)實現(xiàn)單點登陸
服務(wù)或其他應(yīng)用系統(tǒng)產(chǎn)品的驗證服
的能力。
  ● 單點登陸 (Single Sign-On)                               

  單點登從用戶的視角是
此邏輯安全區(qū)域中不同應(yīng)用
陸。這種能力對多種IT應(yīng)用
提高,企業(yè)中的應(yīng)用系統(tǒng)也
,這些安全策略典型的包括
由于各系統(tǒng)互相獨立,一個
統(tǒng)登陸。這對于用戶來說必
對于這種情況,單點登陸的
J2ee1.3也在規(guī)范中建議j2e
規(guī)定j2ee產(chǎn)品應(yīng)遵循何種標(biāo)
有的j2ee產(chǎn)品實現(xiàn)了在本產(chǎn)
陸(如IBM WebSphere Appl
WebSphere Application Se
WebSphere Application Se
點登陸是通過傳遞憑證(Cr
WEB客戶端和應(yīng)用程序客戶
security Context),安全
全策略來判斷用戶是否有訪
式,因此不能在不同廠商的
產(chǎn)品間互相共享安全上下文
LDAP server等)集成的方
指用戶在特定的邏輯安全區(qū)域中
系統(tǒng)中的被授權(quán)的資源,只有超
系統(tǒng)共存的企業(yè)顯得尤為有價值
越來越多。在傳統(tǒng)的應(yīng)用系統(tǒng)中
組織結(jié)構(gòu)定義,安全角色定義,
用戶在使用每一應(yīng)用系統(tǒng)之前,
須記住每一個系統(tǒng)的用戶名和密
概念隨之產(chǎn)生,并不斷的應(yīng)用到
e產(chǎn)品應(yīng)為應(yīng)用系統(tǒng)提供單點登
準(zhǔn),因此不同的廠商的產(chǎn)品在單
品環(huán)境范圍內(nèi)的單點登陸,有的
ication 4.0 AE 實現(xiàn)了WebSphe
rver、WebSphere Application
rver與Lotus Domino server之
edential)來實現(xiàn)的.當(dāng)用戶進
端)根據(jù)用戶的憑證(Credenti
上下文包含用于驗證用戶的安全
問系統(tǒng)資源的權(quán)限。遺憾的時j2
j2ee產(chǎn)品之間傳遞安全上下文。
,因此在不同j2ee產(chǎn)品間實現(xiàn)單
式。
,只需進行一次登陸即可在訪問在
越了安全區(qū)域邊緣時才要求再次登
。隨著企業(yè)信息化建設(shè)程度的不斷
,各系統(tǒng)各自維護自己的安全策略
用戶身份驗證,資源訪問控制等。
都必須按照相應(yīng)的系統(tǒng)身份進行系
碼,給用戶帶來了不小的麻煩。針
企業(yè)的應(yīng)用系統(tǒng)的集成當(dāng)中。
陸的能力。但j2ee1.3規(guī)范并沒有
點登陸上的實現(xiàn)和應(yīng)用各不相同。
實現(xiàn)了特定系統(tǒng)環(huán)境之間的單點登
re Application Server與
Server與Lotus Domino server、
間的單點登陸能力)。在j2ee中單
行系統(tǒng)登陸時,客戶端容器(包括
al)為用戶建立一個安全上下文(
信息,系統(tǒng)用這個安全上下文和安
ee規(guī)范并沒有規(guī)定安全上下文的格
到目前為止還很少有在不同的j2ee
點登陸只能通過第三方產(chǎn)品(如


  ● 惰性驗證(Lazy Authentication)                       

  身份驗是有代價的。例如,一次驗證
就非常有用了。惰性驗證使當(dāng)用戶訪問受
發(fā)起請求時就執(zhí)行驗證過程。
過程也許包括多次通過網(wǎng)絡(luò)信息交換。因此惰性驗證
保護的資源時才執(zhí)行驗證過程,而不是在用戶第一次


  J2ee的授權(quán)模型                                                           

  ● 代碼授權(quán)(Code Authorization)                         

  j2ee產(chǎn)品通過java 2
統(tǒng)的安全。詳細(xì)描述請參閱
安全模型來限制特定J2SE的類和
《J2SE規(guī)范文檔》。
方法的執(zhí)行,以保護和確保操作系


  ● 調(diào)用者授權(quán)(Caller Authorization)                   

  安全角色:安全角色是具有相同安全
Application Assembler)或應(yīng)用程序的
屬性的邏輯組。它由應(yīng)用程序的裝配者(
部署者(Application Deployer)分配的。

  ● 安全角色引用:安全角色引用是
安全角色的標(biāo)識。應(yīng)用程序提供者(Appl
色分配資源訪問的權(quán)限。也在安全相關(guān)的
應(yīng)用程序提供者(Application Provider)用來引用
ication Provider)可以用安全角色引用來為安全角
程序代碼中引用安全角色。

  ● 用戶和組:用戶和
的人和群體。
組是在實際系統(tǒng)環(huán)境下的用戶和

用戶的集合。它們對應(yīng)者現(xiàn)實當(dāng)中


  ● 訪問控制:訪問控
對象包括EJB的遠(yuǎn)程方法、w
j2ee中訪問控制在應(yīng)用程序
制可以確保安全角色只能訪問已
eb資源(html網(wǎng)頁,jsp/servle
描述文件中與安全角色關(guān)聯(lián)起來
授予它安全權(quán)限的授權(quán)對象。授權(quán)
t和多媒體或二進制文件)等。在


  ● 映射:通過映射應(yīng)用程序的系統(tǒng)
系起來,從而是實際的用戶擁有對企業(yè)資
管理員將實際系統(tǒng)環(huán)境中的用戶和角色與安全角色聯(lián)
源訪問的適當(dāng)授權(quán)。

  ● 被傳播的調(diào)用者身份標(biāo)識(Propa
gated Caller Identities)

  在j2ee 1.3中可以選擇
證。在這種方式下,整個ej
CallerPrincipal返回相同
jsp/servlet調(diào)用的,inter
principal name)應(yīng)與inte
。要注意的是在調(diào)用鏈中傳
要,因為在調(diào)用鏈的每個節(jié)
用傳播調(diào)用者標(biāo)識作為web組件
b組件的調(diào)用鏈中interface EJB
的主體名(principal name)。
face EJBContext的方法getCall
rface HttpServletRequest的方
遞的是用戶的標(biāo)識,而不是憑證
點上用戶可能使用不同的安全屬
和ejb組件調(diào)用者的標(biāo)識來進行驗
Context的方法get
如果調(diào)用鏈中的第一個ejb是被
erPrincipal返回的主體名(
法getUserPrincipal的返回值相同
(credentials),這一點非常重
性。


  Run As Identities                                            


  J2ee 1.3中提供了允許
j2ee1.3規(guī)范的產(chǎn)品會提供
Identities方式被選中,在
中第一個節(jié)點的調(diào)用者了,
為與被設(shè)置為Run As Ident
組件開發(fā)者和部署這來指定組件
將組件設(shè)置成Run As Identitie
運行中被設(shè)置為Run As Identit
而是在部署時被指定的調(diào)用者。
ities的組件的調(diào)用者相同。
以什么身份運行的方法。符合
s方式的方法。如果Run As
ies的組件的調(diào)用者不再是調(diào)用鏈
而調(diào)用鏈中隨后節(jié)點的調(diào)用者也變

  j2ee為我們提供了對于
用j2ee為我們提供的這些服
擴展性和可維護性。只有在
安全產(chǎn)品或自己開發(fā)安全服
驗證和授權(quán)的安全服務(wù),在開發(fā)
務(wù)。因為只有遵循j2ee標(biāo)準(zhǔn),才
所選j2ee產(chǎn)品不能滿足特定的安
務(wù)。
基于j2ee的應(yīng)用時應(yīng)該盡可能的使
能使你的應(yīng)用具有良好的移植性、
全需求時,才應(yīng)該考慮使用第三方

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用 Acegi 保護 Java 應(yīng)用程序,第 1 部分: 架構(gòu)概覽和安全過濾器
Q & A: WebSphere Application Server 常見安全性問題 -...
MVC5
電子平臺J2EE的安全體系
從Java EE安全到Acegi
智能客戶端體系結(jié)構(gòu)與設(shè)計指南 第 5 章 — 安全性考慮事項
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服