본문 바로가기

해킹-보안

톰캣 에러 페이지 처리 및 버전 정보 삭제

반응형

톰캣 서버 디렉토리 / conf / web.xml 파일에 아래 내용을 추가한다.

<!-- errorpage redirect --> <error-page> <error-code>400</error-code> <location>/error/400.html</location> </error-page> <error-page> <error-code>404</error-code> <location>/error/404.html</location> </error-page> <error-page> <error-code>500</error-code> <location>/error/500.html</location> </error-page>



location 설정에서 파일 경로(/)를 꼭 명시하고 location에 해당하는 경로에 에러페이지 파일을 만든다.

클라이언트가 서버에게 "127.0.0.1/|!@#~" 와 같이 해석 불가능한 요청을 보내면
400 Bad Request - " 유효한 문자들은 RFC 7230과 RFC 3986에 정의되어 있습니다. " 라는 메시지를 출력하는데
해당 오류는 지정한 에러페이지로 리다이렉트가 안될 수 있다.
따라서 server.xml 파일에 아래처럼 relaxedQueryChars에 요청 허용할 문자들을 지정하면 해당 에러가 발생하지 않는다.
Connector connectionTimeout="20000" port="8080" relaxedQueryChars="^{}[]|"<>" protocol="HTTP/1.1" redirectPort="8443"/>

하지만 위 방법보다는 에러페이지 버전을 노출하지 않도록 설정하는 것을 권장한다.
톰캣 디렉토리 / conf / server.xml 파일에서 아래 소스를 추가하면 에러페이지에 버전 정보가 제거된 상태로 출력된다.
Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false"/>



반응형