[Tomcat] Tomcat 사용 시 서버정보 노출 막기
#. 서버 정보에 대한 설정이 제대로 되지 않아 응답 값에 서버 정보가 노출될 수 있습니다.
#. 간단한 처리만으로 서버 종류 및 버전에 대한 정보를 숨길 수 있습니다.
#. Tomcat 8.5 미만 버전 사용 시 필수로 필요하며 그 이상일 경우 설정하지 않을 시 서버 정보가 노출되진 않으나 적용은 가능합니다.
- Step 0. 현재 서버 응답 값 확인하기
- 웹브라우저 > F12(개발자 모드) > 네트워크 탭에서 페이지 요청 시도(접속) 시 응답헤더에서 확인이 가능합니다.
- Step 1. 톰캣 > Server.xml 열기
- IDE에 연결된 tomcat의 server.xml 열기 또는 톰캣 폴더 경로에서 직접 열어줍니다.
- 톰캣 폴더의 경로는 apache-tomcat-버전 > conf > server.xml
- Step 2. Server.xml 수정
- <Connector> 태그를 찾아보면 여러 가지가 있을 것입니다.(주석 해제 되어 있는 태그 확인)
- HTTP, HTTPS, AJP 프로토콜에 대한 구분이라 생각하면 쉬우며 로컬에서는 SSL을 사용하지 않을 것이기에 HTTP로 되어 있을 것입니다.
- 만약 HTTP와 HTTPS를 둘 다 사용하는 경우엔 <Connector> 태그가 두 개 가 주석 해제되어 있을 것입니다.
server="내용"
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" server=" "/>
- 위 프로퍼티만 입력해 주면 되며, 공백으로 보여주고자 할 경우 ""는 기본값이므로 " "와 같이 띄어쓰기해줘야 합니다.
- Step 3. 결과 확인
- 콘솔을 통해 아래와 같이 입력 시 응답값을 받을 수 있으며 로컬이 아닌 경우 웹주소를 적으면 됩니다.
curl -i http://localhost:포트번호/접근경로
- 적용 전
- 적용 후
===========================================================
틀린 내용이 있거나 이견 있으시면 언제든 가감 없이 말씀 부탁드립니다!
===========================================================