보안 지적 사항중 get, post 외의 method를 제거 하라는 내용이 나왔습니다.

더 정확하게는 HEAD, OPTIONS를 제거하라는 내용이 왔는데요

이것 때문에 고생을 좀 했습니다.

우선 OPTIONS method는 사용가능한 OPTION 정보를 보여준다고 합니다.

 

telnet에서 OPTIONS 확인 하는 방법

1. cmd창 열고

2. telnet localhost 8080(실제 호스트)

3. OPTIONS / HTTP/1.0 (타이핑 - 화면에 안보이지만 그래도 타이핑을 해줍니다. 혹은 복사 & 붙여 넣기)

결과 200 이고 Allow가 있는지 확인 합니다.

 > Allow: OPTIONS,GET,HEAD,POST,TRACE

위 처럼  Allow가 있다면 해당 method를 제공한다고 보면 됩니다.

 

해당 method제거 하려면 서버에 접속해서 httpd.conf 파일을 수정 후 apache를 재기동 해줘야 합니다.

httpd.conf 수정 방법

1. <Directory /HOME> // 실제 사용중인 웹의 home 경로를 찾아 줍니다.

2. 아래 처럼 수정 합니다.

방법 1)

<Directory /HOME>

    ~~~~~ 다른 내용들 ~~~~~

    <LimitExcept GET POST>

        Order deny,allow

        Deny from all

    </LimitExcept>

</Directory>

 

방법 2)

<Directory /HOME>

    ~~~~~ 다른 내용들 ~~~~~

    <Limit OPTIONS, TRACE>

        Order deny,allow

        Deny from all

    </Limit>

</Directory>

주의 1) 다른 내용들은 건들이지 말고 추가되는 LimitExcept 부분에는 Order 부분과 Deny 혹은 allow 부분만 들어가야 합니다.

주의 2) 다른곳을 찾아보면 Order, Deny를 Limit나 LimitExcept에 따라서 다른 값을 입력하는 부분도 있는데 위의 방법대로 동일하게 입력해야 문제가 없습니다. Limit나 LimitExcept나 Order, Deny 부분은 동일합니다.

주의 3) Limit는 해당 mehod는 제한 한다는 내용인데 이곳에 HEAD는 들어가면 안됩니다. HEAD가 들어가면 GET도 안되는 것 같습니다.

3. httpd.conf 검증

 > httpd -t -f conf/httpd.conf

4. apache 재시작

 > apachectl restart

5. telnet 으로 OPTIONS 다시 확인 (403이나 기타 다른 오류로 200이 안떨어지면 성공입니다.)

 

만약 TRACE 만 제거 하려면

httpd.conf 파일 제일 하단에

TraceEnable Off

라고 추가해 주면 TRACE는 간단히 막합니다.

'Servers' 카테고리의 다른 글

리눅스, 유닉스 서버 종류 및 버전 확인  (0) 2019.12.10
chrome https 접속 오류  (0) 2015.09.11
server별 기본 명령어 모음  (1) 2012.09.12
jsessionid was별 변경방법  (1) 2012.06.21
Jeus Webtob 라이센스 갱신  (0) 2012.03.19