반응형
톰캣 서버 디렉토리 / 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"/>
반응형
'해킹-보안' 카테고리의 다른 글
자바스크립트 정규식 비밀번호 유효성 검사 (0) | 2021.02.11 |
---|---|
Spring XSS Java Filter 등록하기 (1) | 2021.02.09 |
톰캣 8.5 사설 SSL 인증서 설치 (0) | 2021.01.31 |
Spring RSA 암호화 적용하기 (0) | 2021.01.30 |
Mybatis $와 # 차이 (0) | 2021.01.13 |