0. 왜 메서드를 제한해야 할까?
우리는 기본적으로 GET / POST 메서드를 가장 많이 사용합니다.
최근 들어 RESTful 한 API를 개발하고자 PUT / DELETE / PATCH 등을 사용하기도 하죠.
하지만 일반적으로 웹사이트에서는 HEAD / OPTIONS / TRACE 메서드를 사용할 일이 없습니다.
이에, 우리는 웹 애플리케이션에서 사용 중인 메서드만 OPEN 해놓을 필요가 있습니다.
(KISA에서는 GET/POST만 열어두길 권고하고 있습니다. but. RESTful 한 API를 사용 중이라면 예외)
1. 메서드 제한 설정하기
각 server 블록에는 location 블록이 존재할 것입니다.
이 location 블록 안에 limit_except 디렉티브를 작성해 줄 것입니다.
server {
...
..
.
location / {
limit_except GET {
deny all;
}
root /app/nginx;
index index.html;
}
}
이제 이 서버에 설정된 도메인으로 요청이 인입되었을 경우, GET 요청을 제외한 모든 요청은 거부될 것입니다.
2. 메서드 차단 확인하기
2-1. GET 요청하기
2-2. POST 요청하기
3. 마치며...
이렇게 nginx의 HTTP 메서드를 제한하는 방법을 알아보았습니다.
여러분의 서비스에 적절한 허용/거부 정책을 넣어 보다 더 보안성 있는 서비스를 만들 수 있으면 좋겠습니다!
'미들웨어 > Nginx' 카테고리의 다른 글
NGINX 요청의 크기를 조절해보자. (client_max_body_size) (0) | 2023.10.01 |
---|---|
HTTP 응답에서 NGINX의 버전 정보를 숨겨보자 (0) | 2023.05.13 |
NGINX의 설정에 대해 쉽게 알아보자. (0) | 2023.05.10 |
웹서버 중 NGINX를 설치해보자! (0) | 2023.05.10 |
댓글