JSP 직접접근 막기.
JSP 를 WEB-INF 하위 디렉토리에 놓는 것이 최상이다.
WEB-INF 디렉토리는 클라이언트에게는 접근이 금지되어 있으나, 컨테이너는 접근이 허용된다.
JSP 페이지를 URI 로 접근하면 실행할 수 없으나, 컨터이너는 실행 가능하다는 것이다.
하지만, 이미 JSP 파일들이 WEB-INF 경로에 있지 않아, 외부에서 JSP 직접접근이 가능하다면,
'security-constraint' 로 직접접근을 제한한다.
EX ) WEB-INF/web.xml 추가
<!-- Security-Constraint(JSP 접근제한) -->
<security-constraint>
<display-name>JSP Pages Protection</display-name>
<web-resource-collection>
<web-resource-name></web-resource-name>
<url-pattern>/search/*</url-pattern>
<url-pattern>/smartsearch/*</url-pattern>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
- url-pattern : 특정디렉토리에 인증(제한)을 걸 수 있게 경로지정
- http-method : 인증(제한)할 메서드를 지정
- auth-constraint : 컨테이너에게 관련 URL 에 대해 인증을 실시하라는 명령
<auth-constraint> 가 없다면 URL 에 대한 인증없이 접근가능
<auth-constraint/> 와 같은 형식으로 되어 있다면, 모든 사용자 접근불가
- 인증의 종류
1. BASIC
2. DIGEST
3. CLIENT-CERT
4. FORM
※ 출처 : http://4te.co.kr/572 (문제시 자삭. 댓글주세요)