Dict.CN 在線詞典, 英語(yǔ)學(xué)習(xí), 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統(tǒng)計(jì)

          留言簿(23)

          積分與排名

          優(yōu)秀學(xué)習(xí)網(wǎng)站

          友情連接

          閱讀排行榜

          評(píng)論排行榜

          應(yīng)用Struts的安全隱患及解決方案 (zhuan)

          應(yīng)用Struts的安全隱患及解決方案

          重要提示:根據(jù)lironghai的評(píng)論,經(jīng)驗(yàn)證,發(fā)現(xiàn)在WebLogic下由于安全限制不能使用本文所推薦的目錄安排。為了保證系統(tǒng)的可移植性,不建議大家采用本文的方式。

          問(wèn)題

          使用Struts框架時(shí),權(quán)限通常控制在Action級(jí)(比如將權(quán)限驗(yàn)證放在Action的基類(lèi)中,這樣新的Action都繼承于這個(gè)Action基類(lèi),所有Action就可以專(zhuān)注于業(yè)務(wù)邏輯,而不需要重復(fù)地進(jìn)行權(quán)限控制了),這也符合MVC中的角色劃分。然而,這會(huì)產(chǎn)生一個(gè)安全隱患。因?yàn)闄?quán)限控制在Action中,所以,頁(yè)面也就沒(méi)有安全屏障了。一般的新增數(shù)據(jù)、更新數(shù)據(jù)不會(huì)有什么問(wèn)題,因?yàn)檫@些數(shù)據(jù)必須通過(guò)HTML的Form提交到Struts的中心控制器,最終由相應(yīng)的Action來(lái)處理,所以Action中就可以驗(yàn)證該用戶(hù)的權(quán)限了。然而,對(duì)于一些不需要Action進(jìn)行數(shù)據(jù)存取,或者有的頁(yè)面沒(méi)有嚴(yán)格按照MVC的角色劃分而在頁(yè)面中有獲取數(shù)據(jù)的代碼,那么這個(gè)頁(yè)面就危險(xiǎn)了。比如,顯示一張通知頁(yè)面,通??梢酝ㄟ^(guò)配置權(quán)限,使部分授權(quán)的用戶(hù)才可以看到該級(jí)別的通知。這個(gè)通知頁(yè)面是不需要從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)的。所以,可以不通過(guò)Action的調(diào)用來(lái)顯示,而是直接敲入顯示該通知的頁(yè)面的鏈接就可以看到了。甚至不需要登錄系統(tǒng),不用管是否有查看該通知的權(quán)限!

          比如下圖中,請(qǐng)求1:

          http://.../showannouncement.do


          是通過(guò)正常的途徑訪問(wèn)的,需要經(jīng)過(guò)權(quán)限驗(yàn)證。而請(qǐng)求2:

          http://.../announcementshow.jsp


          則完全繞過(guò)了權(quán)限檢查,任何人,不需要登錄系統(tǒng)就可以訪問(wèn)到該信息了。



          解決方案

          解決的辦法也不是沒(méi)有,非常簡(jiǎn)單。大家都知道JSP Web容器會(huì)對(duì)應(yīng)用的WEB-INF目錄下的所有文件加以保護(hù)的,任何用戶(hù)都不能直接通過(guò)瀏覽器訪問(wèn)WEB-INF目錄(包括子目錄)下的任何資源,然而這些資源可以被JSP Web容器訪問(wèn)。所以,解決辦法已經(jīng)出來(lái)了??梢园涯愕腏SP頁(yè)面放到WEB-INF目錄下,在struts-config.xml的action的配置中注意要把轉(zhuǎn)向的頁(yè)面指向類(lèi)似:

          /WEB-INF/pages/announcementshow.jsp。

          這樣就保證了所有數(shù)據(jù)的安全了。

          使用本文的方法,甚至可以對(duì)靜態(tài)的頁(yè)面,比如html的頁(yè)面進(jìn)行保護(hù),設(shè)置權(quán)限以限制訪問(wèn)

          posted on 2006-04-26 15:16 都市淘沙者 閱讀(382) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 武汉市| 神池县| 清流县| 区。| 大同市| 山东| 安宁市| 长宁县| 平利县| 北碚区| 康乐县| 临武县| 佛坪县| 乌鲁木齐县| 象州县| 民乐县| 九龙城区| 南昌县| 恩施市| 抚远县| 灌云县| 如东县| 夏河县| 吉首市| 策勒县| 桐梓县| 绍兴市| 徐水县| 平远县| 长岭县| 河津市| 阿克苏市| 新龙县| 修水县| 天全县| 博野县| 侯马市| 佳木斯市| 绩溪县| 淅川县| 津南区|