1. 개요

Tomcat으로 요청을 보낸 후, Response Header를 확인하여 보면, 다음의 "Apache-Coyote/1.1"과 같이 Server: 정보가 노출된다. 크롬 브라우저의 요소 검사 기능 혹은 curl 명령어를 이용해서 확인해 볼 수도 있다.

$ curl -i http://192.168.1.100:8080
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"2457-1391593060000"
Last-Modified: Wed, 05 Feb 2014 09:37:40 GMT
Content-Type: text/html
Content-Length: 2457
Date: Mon, 22 Sep 2014 04:33:54 GMT

2. 대응

이러한 노출을 방지하기 위하여 server.xml의 http Connector 설정에 다음과 같이 server=" "를 추가하고 그 사이에 노출을 원하는 문자열을 삽입한다.

<Connector port="8080" protocol="HTTP/1.1" server="Server"
...

그리고 다음과 같이 다시 curl을 통하여 확인하여 보면 Apache-Coyote/1.1이 아닌 지정한 Server라는 문자열로 표시된다.

$ curl -i http://192.168.1.100:8080
HTTP/1.1 200 OK
Accept-Ranges: bytes
ETag: W/"2457-1391593060000"
Last-Modified: Wed, 05 Feb 2014 09:37:40 GMT
Content-Type: text/html
Content-Length: 2457
Date: Mon, 22 Sep 2014 04:40:20 GMT
Server: Server

단, server=""로 할 경우 원래와 같이 Apache-Coyote/1.1 =가 표시되니 만일 blank 로 표시하고 싶다면 server=" "와 같이 공백을 포함하여 설정한다.