Container 錯誤頁的設定分類
Tomcat 錯誤頁全域設定
- 此處以 404 錯誤頁為範例,其他錯誤頁設定方式相同。
- 先準備一個自訂的404.html頁面.例如: customized404.html
- 到 tomcat 安裝目錄下的 conf 修改 web.xml 檔.
- 將客製好的錯誤頁(customized404.html)放在 webapps/ROOT/目錄
下即可.
1
2
3
4
5
6
<error-page>
<error-code>404</error-code>
<location>/customized404.html</location>
</error-page>
單一 Application 設定
- 先準備客製好的錯誤頁
- 專案根目錄下相對應資料夾建立 /pages/customized404.html
- 單一 App 則在在專案的 web.xml 中加入下列設定即可。
1
2
3
4
5
6
<error-page>
<error-code>404</error-code>
<location>/pages/customized404.html</location>
</error-page>
隱藏 Tomcat 版本與報告資訊
- 為了避免駭客得知container資訊最簡易設定可採用下列方法
- /tomcat/config/server.xml
- 在 Host 區塊增加 ErrorReportValve資訊,以隱藏 report 與 serverinfo。
1
2
3
4
5
6
7
8
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.ErrorReportValve"
showReport="false"
showServerInfo="false"/>
</Host>
Web Container 其他常見客製化錯誤頁設定範例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{/* 400 錯誤 */}
<error-page>
<error-code>400</error-code>
<location>/error.jsp</location>
</error-page>
{/* 404 查無頁面錯誤 */}
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
{/* 500 伺服器內部錯誤 */}
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
{/* java.lang.Exception 異常錯誤 */}
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
{/* java.lang.NullPointerException 異常錯誤 */}
<error-page>
<exception-type>java.lang.NullPointerException </exception-type>
<location>/error.jsp</location>
</error-page>
{/* ServletException 異常錯誤 */}
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/error.jsp</location>
</error-page>