1. 程式人生 > >檢測到錯誤頁面web應用伺服器版本資訊洩露

檢測到錯誤頁面web應用伺服器版本資訊洩露

比方說我現在訪問:http://localhost:8080/pages/xx.jsp,應該會報404,沒有該頁面,但是會顯示出所用伺服器的資訊:


所以為了避免產生此類漏洞個,應該對錯誤進行處理,在web.xml新增對相應的錯誤頁面:

<!-- 預設的錯誤處理頁面 -->
<error-page>
    <error-code>403</error-code>
    <location>/pages/403.html</location>
</error-page>
<error-page>
    <error-code>404</error-code>
    <location>/pages/404.html</location>
</error-page>
<!-- 僅僅在除錯的時候注視掉,在正式部署的時候不能註釋 -->
<!-- 這樣配置也是可以的,表示發生500錯誤的時候,轉到500.jsp頁面處理。 -->
<error-page>
    <error-code>500</error-code>
    <location>/pages/500.html</location>
</error-page>

但是這樣,並沒有正常處理異常錯誤:

No mapping found for HTTP request with URI [/pages/405.html] in DispatcherServlet with name 'springMVC'
當你在control中返回一個路徑的時候,它又把路徑(/view/index.jsp)當作一個請求被dispatcherServlet所攔截。所以會丟擲異常,解決的辦法有兩個:
第一即使讓dispatcherServlet的攔截加上字尾如:*.do;
這樣以jsp字尾的就不會別攔截了。
第二個方法是在spring-servlet.xml中加入:

<mvc:default-servlet-handler/>

修改配置檔案後,再次訪問: