熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Jakarta Struts應用的七個經驗(3)

2013-11-23 20:30:19  來源: Java開源技術 

   把JSP放到WEBINF後以保護JSP源代碼
  
  為了更好地保護你的JSP避免未經授權的訪問和窺視 一個好辦法是將頁面文件存放在Web應用的WEBINF目錄下
  
  通常JSP開發人員會把他們的頁面文件存放在Web應用相應的子目錄下一個典型的商店應用程序的目錄結構如圖所示跟catalog (商品目錄)相關的JSP被保存在catalog子目錄下跟customer相關的JSP跟訂單相關的JSP等都按照這種方法存放
  
   
  
  這種方法的問題是這些頁面文件容易被偷看到源代碼或被直接調用某些場合下這可能不是個大問題可是在特定情形中卻可能構成安全隱患用戶可以繞過Struts的controller直接調用JSP同樣也是個問題
  為了減少風險可以把這些頁面文件移到WEBINF 目錄下基於Servlet的聲明WEBINF不作為Web應用的公共文檔樹的一部分因此WEBINF 目錄下的資源不是為客戶直接服務的我們仍然可以使用WEBINF目錄下的JSP頁面來提供視圖給客戶客戶卻不能直接請求訪問JSP
  
  采用前面的例子顯示將JSP頁面移到WEBINF 目錄下後的目錄結構
  
  
  
  
  
  
  
  
  如果把這些JSP頁面文件移到WEBINF 目錄下在調用頁面的時候就必須把WEBINF添加到URL中例如在一個Struts配置文件中為一個logoff action寫一個Action mapping其中JSP的路徑必須以WEBINF開頭如下所示請注意粗體部分
  
  這個方法在任何情況下都不失為Struts實踐中的一個好方法是唯一要注意的技巧是你必須把JSP和一個Struts action聯系起來即使該Action只是一個很基本的很簡單JSP也總是要調用一個Action再由它調用JSP
  
  最後要說明的是並不是所有的容器都能支持這個特性WebLogic早期的版本不能解釋Servlet聲明因此無法提供支持據報道在新版本中已經改進了總之使用之前先檢查一下你的Servlet容器
  
  

From:http://tw.wingwit.com/Article/program/Java/ky/201311/28586.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.