사용자 입력을 신뢰하지 않는 원칙을 코드에 적용한 경험
포트폴리오 프로젝트에서 게시판 기능을 만들 때 처음에는 프론트에서 폼 검증만 하고 백엔드에서 검증을 하지 않았습니다. 그러나 브라우저 개발자 도구로 요청을 직접 보내면 검증이 우회된다는 사실을 알게 되었습니다. 빈 제목이나 1만 자 이상의 본문을 그대로 DB에 넣는 것이 가능했습니다. 이후 백엔드에서도 입력 길이, 허용 문자, 빈 값을 모두 검사하도록 추가하였습니다.
프론트 검증은 사용자 편의를 위한 것이고, 백엔드 검증이 실제 방어선이라는 것을 배웠습니다. 클라이언트에서 온 데이터는 항상 신뢰할 수 없다는 원칙이 생겼습니다. 이후 모든 API 엔드포인트에 입력 검증 레이어를 우선 작성하는 습관이 생겼습니다.