톰캣 8.0 이하에서 HTTP Response 메시지에서 Server 값 바꾸기
HTTP 응답메시지의 헤더중 Server라는 속성이 있고 이 값은 웹서버 제품의 이름을 알려줍니다. 톰캣은 기본적으로 Apache-Coyote라는 값을 응답하도록 되어있습니다.
아래는 톰캣에게 요청을 보냈을때 응답 메시지를 캡쳐한것입니다.
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=A07D4A517740C52E01F502DBF8DE5C0C; Path=/; HttpOnly
Content-Type: text/html;charset=UTF-8
Content-Length: 142
Date: Tue, 09 Jul 2019 05:01:43 GMT |
cs |
그러나 보안적인 측면에서 보았을때 웹서버가 어떤 제품인지를 굳이 알려줘서 좋은점은 없습니다. 따라서 이 값을 수정하는것이 좋을것으로 보입니다. 톰캣 8.5부터는 응답메시지에 이 Server 속성을 포함시키지 않는것이 기본설정인데 그 이전 버전에서는 설정으로 직접 변경해주어야 합니다.
설정 방법
[톰캣 설치 디렉터리]/conf/server.xml을 찾아 에디터로 실행합니다.
이곳에서 클라이언트에서 HTTP요청에 사용하는 <Connector> 설정을 찾습니다. 8080 port로 설정되어 있거나 80번 port 또는 port가 설정되어 있지 않은 녀석을 찾으면 됩니다.
<Connector
connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
server="dololak" /> |
cs |
그리고 위와 같이 명시적으로 server="값" 형태로 속성값을 지정해줍니다. 만약 이 server 값이 ""(공백)이거나 server 속성이 생략된 경우 기본값인 Apache-Coyote/1.1가 응답 헤더에 들어가게 됩니다.
설정을 변경하고 톰캣을 재시작한 후 HTTP 요청시 응답 메시지를 보면 다음과 같이 바뀌어 있음을 확인할 수 있습니다.
HTTP/1.1 200 OK
Set-Cookie: JSESSIONID=DAAEE662066FC8B0916CE4C680FFE065; Path=/; HttpOnly
Content-Type: text/html;charset=UTF-8
Content-Length: 142
Date: Tue, 09 Jul 2019 05:12:03 GMT
Server: dololak |
cs |
'Servlet&Jsp' 카테고리의 다른 글
[서블릿/JSP] HttpSessionBindingListener의 바운드와 언바운드 조건 (0) | 2019.07.15 |
---|---|
[서블릿/JSP] HttpSessionBindingListener 리스너 사용법 (0) | 2019.07.14 |
[서블릿/JSP] 서버의 세션 수 제한하는 방법 (0) | 2019.07.09 |
[서블릿/JSP] 세션 timeout 설정 방법들과 적용 우선순위 (0) | 2019.07.09 |
[서블릿/JSP] 리스너(Listner)란? 이벤트 리스너의 개념 설명. 구현 및 등록하기 (2) | 2019.01.24 |