본문 바로가기
html and css

[Restful API]HTTP method에 대해서

by 하이바네 2022. 9. 20.
반응형

몇몇 프로젝트에서 API를 구성해서 사용을 했었는데 정확히 따지자면 Restful을 다 따르지는 않았었다.

get과 post만 사용한 API들이었다. 시간이 너무 많이 나서 이런저런 강의들을 보다가 HTTP method에 대한 짧은 강의를 보게 되었는데 여기에서 Restful API는 일반적으로 GET, POST, DELETE, PUT을 쓴다고 한다.

 

예를 들면 아래와 같은 용도로 사용하며, API의 url에는 동작에 대한것은 넣지 않고 명사만 넣는 다는 것이다. 동작에 대한 설명은 HTTP method가 담당

GET 데이터 가져오기
POST 데이터 보내기
DELETE 데이터 삭제
PUT 데이터 업데이트

 

그런데 또 찾다보니 나온게 DELETE, PUT 메소드의 경우에는 보안상 문제가 발생될 수 있어 사용 하지 않는 것을 권한다는 것이다. 실제 프로젝트에서도 쓰지 않는 곳이 있는듯 보였다. 그런데...왜 보안 문제가 되는거지? 가 중요하지 않을까

 

그 이유는 WebDAV 라는 것과 같이 이용시 취약점이 발견 되었다는 것이라는데 (자세히는 나도 모르겠다..더 알아보도록 하자 ㅠㅠ)

 

okky에 댓글을 보다보니 이런 설명이 있었다.

 

  • OPTIONS
  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • TRACE
  • CONNECT

이걸 모두 활성화하게 되면  WebDAV extention에서 아래와 같은 메소드가 추가됩니다.

  • PROPFIND
  • PROPPATCH
  • MKCOL
  • COPY
  • MOVE
  • LOCK
  • UNLOCK

이 메소드들을 사용하면 웹 서버의 파일을 변경할 수가 있게 되서 보안에 심각한 문제가 생깁니다.

https://security.stackexchange.com/questions/38635/how-is-http-put-and-delete-methods-insecure-if-they-really-are

 

How is HTTP PUT and DELETE methods insecure, if they really are?

If I really need to use these methods, how do i make sure they are secure? Edit: Is there a link or source where I can see how to make sure that 'PUT' and 'DELETE' methods are not able to delete or

security.stackexchange.com

https://okky.kr/articles/395308

 

OKKY - RESTful API 구현 시 POST,PUT,DELETE,GET Method의 사용범위는?

안녕하세요. 초보 웹 개발자 입니다.맨날 초보 개발자라고 저를 소개하는군요 ;; 다름이 아니라 이번에 새 프로젝트를 진행하게 되었는데요.모바일 요청에 대한 API를 구현해야하는데 RESTful 하도

okky.kr

가장 아래의 댓글을 보면 될듯 하다.

728x90

댓글