如何保護你的JSP頁面

來源:互聯網
上載者:User

為了更好地保護你的JSP避免未經授權的訪問和窺視, 一個好辦法是將分頁檔存放在Web應用的WEB-INF目錄下。

  通常JSP開發人員會把他們的分頁檔存放在Web應用相應的子目錄下。一個典型的商店應用程式的目錄結構2所示。跟catalog (商品目錄)相關的JSP被儲存在catalog子目錄下。跟customer相關的JSP,跟訂單相關的JSP等都按照這種方法存放。
  
  這種方法的問題是這些分頁檔容易被偷看到原始碼,或被直接調用。某些場合下這可能不是個大問題,可是在特定情形中卻可能構成安全隱患。使用者可以繞過Struts的controller直接調用JSP同樣也是個問題。

  為了減少風險,可以把這些分頁檔移到WEB-INF 目錄下。基於Servlet的聲明,WEB-INF不作為Web應用的公用文檔樹的一部分。因此,WEB-INF 目錄下的資源不是為客戶直接服務的。我們仍然可以使用WEB-INF目錄下的JSP頁面來提供視圖給客戶,客戶卻不能直接請求訪問JSP。

  採用前面的例子,圖3顯示將JSP頁面移到WEB-INF 目錄下後的目錄結構

  如果把這些JSP分頁檔移到WEB-INF 目錄下,在調用頁面的時候就必須把"WEB-INF"添加到URL中。例如,在一個Struts設定檔中為一個logoff action寫一個Action mapping。其中JSP的路徑必須以"WEB-INF"開頭。如下所示:請注意粗體部分.

  這個方法在任何情況下都不失為Struts實踐中的一個好方法。是唯一要注意的技巧是你必須把JSP和一個Struts action聯絡起來。即使該Action只是一個很基本的很簡單JSP,也總是要調用一個Action,再由它調用JSP。

  最後要說明的是,並不是所有的容器都能支援這個特性。WebLogic早期的版本不能解釋Servlet聲明,因此無法提供支援,據報道在新版本中已經改進了。總之使用之前先檢查一下你的Servlet容器。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.