본문 바로가기

WEB Server/[Httpd] GET, POST Method 허용

[Httpd] GET, POST Method 허용



[Httpd] GET, POST Method 허용



ISMS 인증 혹은 ISO-27001 등 보안 인증 심사를 준비하다보면 몇 가지 웹 요청에 대한 요구사항들이 생긴다.

오늘은 그 중에서도 웹 요청 HTTP Method 중 사실상 허용되는 GET, POST 만을 허용할 수 있도록

웹 서버 설정을 어떻게 해야하는지에 대해 알아볼까한다.


사실 HTTP Method 는 그 역할에 따라 종류가 꽤 많은데

보안 취약점으로 사실상 GET, POST 정도만 허용 하는 추세다.

(웹 요청의 헤더만을 확인하는 HEAD 요청도 차단을 요구하는 고객사도 있다.)

(또한, PUT, DELETE 등 차단을 안 했을 경우 고려해야될 변수가 많은 Method 들은 맘 편하게 차단해 버리자 주의인 것 같다.)



요구사항

- 웹서버에서 HTTP Method 중 GET, POST Method 만을 허용하도록 한다. (Httpd-2.4.41 기준)



웹 서버로는 Apache Httpd 를 활용하고 있으므로 Httpd 에서 어떻게 처리할 수 있는지 확인해보자!

기본적으로 Httpd 에서는 원하는 Method 만을 허용할 수 있도록 Directive <LimitExcept> 를 제공한다.


(https://httpd.apache.org/docs/2.4/mod/core.html#limitexcept)



말인 즉, "<LimitExcept> 에 등록된 Method 를 제외하고 웹 요청 접근을 차단한다" 이다.


해당 지시자를 적용할 수 있는 부분은 Context: directory, .htaccess 인데 사실 더 자세히 보면

directory: <Directory>, <Location>, <Files>, <If>, <Proxy> 지시자 내부에서 활용할 수 있다는 것이다.


그렇게 아래와 같은 형태로 설정할 수 있다.



    
        Require all granted
    


## 설정 후 method 별 접근 테스트

## <Limit> 지시자 확인 및 차단 method 범위 확인

## HEAD 는 WAS 레벨에서 차단하자!

> 보통 location 활용, rewriterule 활용하는 곳도 있는데, symbolic 설정 해제 되는 것 같다. (링크 관련 보안 취약점 제시)

> rewrite rule 활용시 모든 요청에 대해서 해당 rule 을 활용하므로 깔끔하지 못한 것 같다.