'Java SE/java'에 해당되는 글 13건

  1. 2014.01.24 tomcat http options 관련 보안
2014. 1. 24. 16:43

HTTP OPTIONS 를 이용해서 서버에 허용된 method 를 조회할 수 있다.

 

PUT - URL 자원 생성(서버에 파일 생성 가능)

DELETE - URL 자원 삭제

 

등의 위험요소가 있기 때문에 막아야한다

 

$TOMCAT_HOME/conf/server.xml

에다

 

 <security-constraint>
     <display-name>Forbidden</display-name>
        <web-resource-collection>
         <web-resource-name>Forbidden</web-resource-name>
            <url-pattern>/*</url-pattern>
            <http-method>PUT</http-method>
            <http-method>DELETE</http-method>
            <http-method>TRACE</http-method>
            <http-method>OPTIONS</http-method>
  </web-resource-collection>
        <auth-constraint>
         <role-name></role-name>
  </auth-constraint>
 </security-constraint>

 

으로 Forbidden할 method 를 지정해주면되며

 

테스트방법은 아래와 같다(cmd창)

혹은 Wfetch를 사용해도 된다.

 

telnet localhost 8080

OPTIONS / HTTP/1.1(엔터)

Host : 127.0.0.1(엔터)

(엔터)

 

하면 결과가 나오며 허용되있을 경우엔 아래와 같고

---------------------------------------

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Allow: GET, HEAD, POST, PUT, DELETE, OPTIONS
Content-Length: 0
Date: Fri, 24 Jan 2014 07:43:18 GMT

---------------------------------------

허용되어있지 않을 경우엔 아래와 같다

---------------------------------------

HTTP/1.1 403 Forbidden
Server: Apache-Coyote/1.1
Pragma: No-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 09:00:00 KST
Content-Type: text/html;charset=utf-8
Content-Length: 1108
Date: Fri, 24 Jan 2014 07:35:34 GMT

---------------------------------------

 

apache 관련 trace off 부분은 (http://thinkout.egloos.com/viewer/1831942) 참고

Posted by silver0r