프로그래밍 공부/Computer Science

로그인 API GET or POST?

Kevinkb 2022. 2. 19. 19:33

로그인 API를 구현하기 위해 어떤 HTTP 메서드를 사용해야 하는가?

사용자가 아이디와 비밀번호를 입력 후 로그인 요청을 한다면 아이디와 비밀번호는 서버에 전달되고 서버는 Database를 확인해 사용자를 식별할 뿐이기 때문에 GET 메서드가 적절해 보이지만 GET 메서드 사용시 아이디와 비밀번호는 쿼리로 전달되야 한다.(GET 메서드는 데이터를 바디에 담을 수 없다) 하지만 GET 요청은 서버 데이터의 상태를 변경하지 않기 때문에 쿼리를 적극적으로 캐싱할 수 있어 아이디와 비밀번호와 같은 정보를 쿼리에 담아 보내게 되면 보안에 취약하다.

따라서, 보안상의 이유로 아이디와 비밀번호를 바디에 담아 보내고(바디에 담긴 데이터는 HTTS 통신에 의해 암호화 된다) 서버 데이터의 상태를 변경해 캐싱될 수 없는 POST 메서드와 HTTPS를 사용해야합니다.

참고자료

https://programmers.co.kr/learn/challenges