회원가입시에 클라이언트에서만 유효성 검사를 하면 안되는 이유

코딩하는 어린콩·2021년 11월 26일
1

I learned

목록 보기
9/14

Spring Boot로 회원가입 기능을 만들다가 문득 "클라이언트 단에서 이미 유효성 검사를 하는데 왜 또 서버단에서 유효성검사를 하지?" 라는 생각에 이번 포스팅을 할려고 합니다.

문제 상황

여러 포스트를 찾아본 결과 결론적으로 클라이언트단에만 검증 코드를 작성해서는 안됩니다.

자 이제부터 그이유를 보도록 하겠습니다.

자 이런식으로 POST요청을 보내기 전에 클라이언트 단에서 유효성 검사를 합니다.

하지만 문제는 크롬의 개발자 도구를 사용하였을때 나타나게 됩니다.

개발자 도구를 이용하여 유효성 검증 부분을 삭제시키고 저장을 합니다.

이렇게 유효성 검사 부분을 지운후 실행시기케 되면 이제 유효성을 검사 하지 않고 회원가입을 할 수 있습니다.

결론적으로 프론트의 검증코드는 언제든지 회피할 수 있기때문에 프론트의 검증코드는 사실상 의미가 없습니다.

해결법

크게 생각해보면 2가지의 방법이 있습니다.

  • 프론트와 백엔드 양쪽에 모두 검증 코드를 작성한다.
  • 백엔드에 검증 코드를 작성 후, 백엔드 결과에 따라 프론트는 메세지만 노출한다.

저는 이번 프로젝트를 하면서 첫번째 방법을 사용했습니다. (이미... 프론트에만 유효성 검증을 해놔서 지우기가 아프더라고요..)

후기

프론트단에서 유효성 검증을 하면 안되는 이유를 알고 그리고 실습해보면서 왜 안되는지 빠르게 알 수 있었습니다. ㅠㅠ

0개의 댓글