HTTP 메서드의 PUT과 DELETE를 Tomcat과 Apache 서버에서 차단해달라는 요청이 있었습니다.
우선은 나름의 근거를 제시해왔고, 제작된 제품도 PUT, DELETE 메서드가 필수적인 RESTAPI방식이 아닌 SOAP 방식이었으므로 차단할 수 있는 설정을 추가하였습니다.
그러나 왜? 라는 질문이 남았습니다.
분명 너무나도 많은 사람들이 이미 REST API를 사용하고 있으니 말입니다. 처음에는 스프링 시큐리티에서 추가적으로 관리하면 상관 없겠지라는 생각이 들었지만 서버단은 시큐리티보다도 전방에서 작동하는 기능이니 시큐리티 문제가 아니었습니다.
검색을 하다가 그저 와전되어 생겨난 낭설이라는 결론에 도달했습니다.
Tomcat이 아닌 C++ 진영의 서버인 IIS에서 모든 http 메서드를 허용할 경우 자동 설정되는 WebDev라는 기능에서 발생하는 취약점을 임시적으로 막기 위해 PUT, DELETE를 차단하던 것이 와전되어 모든 서버들에 대한 권고사항이 되어버린 것이었습니다.
만약 사용하지 않는다면 굳이 http 메서드들을 허용할 필요는 없겠지만 이 부분 때문에 REST API를 포기할 필요도 없다는 결론이었습니다.
모든 것에는 이유가 있는 것 같습니다. 때로는 회사 내 분위기와 제품의 성능 상의 문제가 없을 경우 갑론을박을 굳이 할 필요는 없겠지만, 왜 해야 되는지. 꼭 해야 되는지는 짚고 넘어가야 되는 부분인 것 같습니다.