반응형
개요
- API 규격을 정의하며
DELETEmethod도 사용할 수 있으면 좋겠다는 의견 DELETEmethod는 서버의 리소스를 제거할 수 있다는 점에서 보안상 취약하다는 얘기를 들음- 자료 확인 후 추후 답변 드린다고 안내
- 확인 결과, 적절한 인증과 권한 확인 절차가 있다면 문제없음
- 시도해 보자
내용
#1 DELETE 메소드는 정말 위험할까?
- MDN에서 서버 상태에 따른 “안전함”을 정의하는 개념이 있음
- 요청을 서버로 전송할 때 서버의 리소스를 변경하지 않는 method라면 “안전” 그렇지 않으면 “위험”으로 보는 개념
안전함 (HTTP 메서드) - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN
developer.mozilla.org
- 그런데 POST도 서버의 리소스를 변경하는데POST는 왜 허용하는 걸까?
- 안전하지 않는다는 이유로 사용하지 않는다면 어떻게 API를 만들어 낼 수 있을까
#2 POST는 필수 DELETE는 선택
[ POST 는 새로운 리소스를 생성해주는 측면에서 필수 ]
- 수정을 “새로운 상태로 생성”한다는 측면으로 바라본다면
PUT대체 가능 - 삭제를 “공란의 상태로 생성”한다는 측면으로 바라본다면
DELETE대체 가능 - 일종의 말장난..
[ DELETE는 리소스를 삭제하는 명확한 목적과 용도로 사용 ]
- 다르게 말하면 삭제만 가능하다는 의미
- 서버에
DELETEmethod를 허용한다면 외부 공격자에 의해서 데이터가 삭제될 수 있는 여지가 있다고 함 - 극소수의 API에서만
DELETE를 사용하면 괜찮지 않을까란 질문이 나올 수 있는데, 그렇지 않다고 대답할 수 있음DELETEmethod를 사용하는 API가 단 1개 있다고 하더라도 이를 위해서DELETE요청을 방화벽에서 통과시켜 줘야 함- 이를 인지한 외부 공격자는 API를 변조해서
DELETE요청을 날릴 수 있게 되는 것
- 따라서 많은 서버들은 GET / POST 이외의 method들은 원천 차단함
결제 시스템의 SDK와 API 디자인 - SLASH 21 | Growth log
PG 연동 개발자들에게 쉽고 빠른 가이드 제공을 위해, 20년 동안 유지된 기존 시스템에 추상화 레이어를 만들고 SDK와 API를 설계했던 경험을 공유합니다. 추가로 인터페이스의 일관성과 예측 가능
injun-woo30000.gitbook.io
#3 지금은 다르지 않을까?
[ 어쩌면 DELETE는 위험하다는 얘기가 낡은 것이지 않을까? ]
- 그때는 맞을 수 있지만 지금은 아닐 수 있지 않을까?
- 보안이 취약하다면
POST는 보안에 안전할까?- 동일하게 위험함
- 그렇기 때문에 인증/인가 정보를 같이 담아서 보내는 것
- method로 보안 취약점을 구별하지 않음
PUT, DELETE 등의 http 메소드 질문있습니다. - 인프런 | 커뮤니티 질문&답변
누구나 함께하는 인프런 커뮤니티. 모르면 묻고, 해답을 찾아보세요.
www.inflearn.com
- DELETE도 POST와 마찬가지로 인증/인가 정보를 보낼 수 있으면 되지 않을까?
[API 설계] DELETE request 요청/처리/응답에 관한 소소한 고민
👨🏻💻 들어가며 최근 제한된 시간 안에 RESTful API를 설계하고 구현해야 했습니다. 그 와중에 아직 잘 숙지가 되지 않았는지 묘하게 위화감이 있는 부분이 있었는데요, 바로 DELETE 요청 메서
humblego.tistory.com
결론
한 번 시도해도 되겠다.
반응형
'사이드 프로젝트 아카이빙' 카테고리의 다른 글
| [HTTPS] Vite HTTPS 개발 환경용 OpenSSL 인증서 발급 가이드 (0) | 2025.11.23 |
|---|---|
| [HTTPS] Vite 개발 환경에서 HTTPS 적용하기 with Proxy (0) | 2025.11.23 |
| [배포] Cloudflare Pages 배포에 인증 추가하기 (0) | 2025.11.23 |
| [Image Upload]이미지 리사이징(Resizing) with pica lib (0) | 2025.11.23 |
| [키워드 알림] 통신 방식 비교 (Polling, SSE) (1) | 2025.11.23 |