개발
Http 기본 메소드 제한
mio choi
2016. 7. 1. 11:10
http 기본 메소드 제한해야 하는 이유
http 인증 프로토콜 순서
- 요청 : 사용자가 서버에게 인증이 필요한 자료를 요청
- 인증요구 : WWW-Authenticate 서버는 사용자에게 인증을 요구하는 401 상태정보를 요구
- 인증 : Authorization 사용자는 이름과 비밀번호를 기술한 헤더와 함께 보낸다.
- 성공 : Authorization-Info 인증이 정확하면 서버는 응답한다.
http method 중에 OPTIONS 메소드가 있는데, OPTIONS는 웹서버에서 지원하는 method가 어떤 것들이 있는지를 알려준다.
GET, POST는 기본적인 메소드이므로 제한을 두지 않는데 OPTIONS 은 어떤 메소드가 허용 가능한지 알려줘서 제한 해야함.
TRACE는 클라이언트가 송신한 request를 그대로 return한다. connector 의 allowTrace 속성으로만 제한함.
tomcat 에서는 web.xml에 이런식으로 http-method를 넣어서 메소드를 제한 시킬 수 있음.
<security-constraint>
<web-resource-collection >
<web-resource-name >restricted methods </web-resource-name >
<url-pattern >/* </url-pattern >
<http-method >OPTIONS </http-method >
</web-resource-collection >
<auth-constraint />
</ security-constraint>
이때 사용자가 서버에 요청을 하고 서버에서는 인증요구를 나타내는 401 상태정보를 사용자에게
내려줄때 공격자가 해당 공격이 유효하나 권한문제로 인하여 공격이 실패되었음을 유추 할 수 있다.
tomcat에서 http 기본 메소드를 web.xml에서 제한시키고 options 요청을 날리면 401상태 정보를
사용자에게 넘기는데 이때는 공격이 유효하지 않아서 401 메세지에 대해 다른 작업을 할 필요가 없어보임.