Tomcat服務在響應404/500等網絡錯誤時,默認會將當前版本信息顯示出來,這樣就造成了中間件版本信息泄露這樣的漏洞
解決方案:
- 進入Tomcat下的lib目錄,備份catalina.jar文件後,解壓該文件
cp catalina.jar catalina.jar.bak
unzip catalina.jar
- 解壓後,通過vi編輯器修改解壓出來的ServerInfo.properties文件(在/org/apache/catalina/util/下)
vim org/apache/catalina/util/ServerInfo.properties
- 去除ServerInfo.properties文件的版本信息
server.info=ApacheTomcat
server.number=0.0.0.0
server.built=Nov 72016 20:05:27 UTC
- 將修改後的文件壓縮回catalina.jar包中
jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
- 重啓Tomcat服務,訪問不存在的頁面進行404報錯驗證,看是否還顯示中間件版本號
【注意】
以上操作僅去除Tomcat服務報錯信息中的版本信息,如果是正式環境,建議使用自定義錯誤頁面替換默認頁面的做法
- 進入Tomcat的conf目錄,修改web.xml,在</web-app>標籤前添加如下內容
<error-page>
<error-code>404</error-code>
<location>/error_404.html</location>
</error-page>
- 進入Tomcat的webapps/ROOT目錄,新增error_404.html頁面,使用自定義頁面已達到隱藏中間件版本信息的目的