<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    海鷗航際

    JAVA站
    posts - 11, comments - 53, trackbacks - 1, articles - 102

    應用Struts的安全隱患及解決方案

    Posted on 2005-01-07 17:48 海天一鷗 閱讀(246) 評論(0)  編輯  收藏 所屬分類: Struts專題
    重要提示:根據lironghai的評論,經驗證,發現在WebLogic下由于安全限制不能使用本文所推薦的目錄安排。為了保證系統的可移植性,不建議大家采用本文的方式。

    問題

    使用Struts框架時,權限通常控制在Action級(比如將權限驗證放在Action的基類中,這樣新的Action都繼承于這個Action基類,所有Action就可以專注于業務邏輯,而不需要重復地進行權限控制了),這也符合MVC中的角色劃分。然而,這會產生一個安全隱患。因為權限控制在Action中,所以,頁面也就沒有安全屏障了。一般的新增數據、更新數據不會有什么問題,因為這些數據必須通過HTML的Form提交到Struts的中心控制器,最終由相應的Action來處理,所以Action中就可以驗證該用戶的權限了。然而,對于一些不需要Action進行數據存取,或者有的頁面沒有嚴格按照MVC的角色劃分而在頁面中有獲取數據的代碼,那么這個頁面就危險了。比如,顯示一張通知頁面,通常可以通過配置權限,使部分授權的用戶才可以看到該級別的通知。這個通知頁面是不需要從數據庫中獲取數據的。所以,可以不通過Action的調用來顯示,而是直接敲入顯示該通知的頁面的鏈接就可以看到了。甚至不需要登錄系統,不用管是否有查看該通知的權限!

    比如下圖中,請求1:

    http://.../showannouncement.do


    是通過正常的途徑訪問的,需要經過權限驗證。而請求2:

    http://.../announcementshow.jsp


    則完全繞過了權限檢查,任何人,不需要登錄系統就可以訪問到該信息了。



    解決方案

    解決的辦法也不是沒有,非常簡單。大家都知道JSP Web容器會對應用的WEB-INF目錄下的所有文件加以保護的,任何用戶都不能直接通過瀏覽器訪問WEB-INF目錄(包括子目錄)下的任何資源,然而這些資源可以被JSP Web容器訪問。所以,解決辦法已經出來了。可以把你的JSP頁面放到WEB-INF目錄下,在struts-config.xml的action的配置中注意要把轉向的頁面指向類似:

    /WEB-INF/pages/announcementshow.jsp。

    這樣就保證了所有數據的安全了。

    使用本文的方法,甚至可以對靜態的頁面,比如html的頁面進行保護,設置權限以限制訪問
    主站蜘蛛池模板: 亚洲精品国产福利片| 欧亚精品一区三区免费| 2022免费国产精品福利在线 | 日本一道在线日本一道高清不卡免费| 国产成人精品免费午夜app| 7x7x7x免费在线观看| 在线免费观看你懂的| 啦啦啦完整版免费视频在线观看| 亚洲免费在线播放| 亚洲视频在线免费看| 精品久久8x国产免费观看| 免费观看的毛片大全| 成人毛片免费观看视频| 我要看WWW免费看插插视频| 免费看片A级毛片免费看| 国产精品免费视频网站| 内射无码专区久久亚洲 | 国内精品免费视频精选在线观看| 国产免费无码AV片在线观看不卡| 99精品一区二区免费视频| 久久WWW免费人成一看片| 午夜宅男在线永久免费观看网| 女人被免费视频网站| 国产男女性潮高清免费网站| 亚洲日韩国产精品乱| 亚洲av无码乱码国产精品| 亚洲第一区视频在线观看| 亚洲熟妇无码AV| 搜日本一区二区三区免费高清视频 | 国产免费变态视频网址网站| 亚洲一区日韩高清中文字幕亚洲| 亚洲精品无码久久久影院相关影片| 久久亚洲精品AB无码播放| www.亚洲成在线| 粉色视频在线观看www免费| 中文字幕免费人成乱码中国| 16女性下面无遮挡免费| 真实乱视频国产免费观看| 亚洲乱码一区二区三区在线观看| 亚洲第一二三四区| 麻豆安全免费网址入口|