왜 단순 클라이언트 체크로 끝내지 않았는가
처음에는 프론트에서만 비밀번호를 비교하는 방식도 떠올릴 수 있다.
하지만 그렇게 하면
- 비밀번호가 노출될 위험이 있고
- 우회 가능성이 크고
- "보호"라고 보기 어렵다
그래서 인증은 서버 쪽에서 처리하고,
성공 시 서명된 세션 쿠키를 발급하는 구조로 두는 방향을 선택했다.
내가 중요하게 본 점
1. 비밀번호 원문 저장 금지
평문 비밀번호를 직접 저장하지 않고,
해시 기반 비교 방식으로 처리했다.
2. 관리자 경로 분리
/admin 경로는 일반 사용자가 자연스럽게 접근하는 영역과 분리했다.
3. 세션 쿠키 기반 유지
한 번 인증한 뒤에는 매번 비밀번호를 다시 입력하지 않아도 되도록 했다.
이 작업을 하면서 느낀 점
작은 블로그라도
관리자 페이지가 있다는 순간부터는
단순한 프론트 프로젝트와는 다르게 봐야 한다고 느꼈다.
보안이라는 말을 거창하게 붙이기보다는,
적어도 "노출되면 안 되는 건 서버에서 막는다"는 기본을 지키는 게 중요했다.
마무리
이번 작업은 엄청 복잡한 인증 시스템은 아니지만,
그렇다고 완전히 가벼운 데모 수준으로 두고 싶지도 않았다.
결국 내가 만들고 싶은 건
기능만 있는 화면이 아니라,
최소한의 운영 감각이 들어간 서비스라는 걸 다시 확인한 과정이었다.