프로젝트

[JavaScript] 페이지 이동간 권한 체크는 언제?

Justin P 2023. 12. 11. 02:55

서비스를 제작하다보면 관리자 페이지처럼 일반 유저들이 접근하지 못하는 부분을 만드는 경우가 생긴다.

프로젝트 제작 중, "상품 추가"나 "유저 관리" 등 관리자의 권한이 있는 테스크를 제작할 일이 생겼다. 이러한 페이지의 경우 일반적인 클릭으로 이동하거나, URL을 알고 있을 경우 직접적으로 이동하려는 시도가 가능하다.

 

이 두 가지 방법은 관리자의 권한이 없을 때에도 가능하므로, 다음 두 가지 경우는 피해야한다:

  1. 페이지를 이동 후 권한 체크 (접근 권한이 없는 사용자에게 페이지 내용을 노출 시킬 수 있음)
  2. 권한 체크 전 페이지 내용을 불러오는 행위 (당연한 말이다.)

권한 체킹을 하는 라우팅 미들웨어를 하나 제작해서, 페이지 이동하기 전 로그인을 한 게정의 권한 체크를 해주고,

관리자가 맞다면 헤당 페이지로 이동, 아니라면 권한이 없다는 알림을 띄워주고 메인페이지로 이동하도록 하는 것이 맞다.

 

어떻게 보면 결과만 생각했을 때 당연한 로직인 것처럼 보일 수 있는 문제다. 정확히 왜 이동하기 전 권한 체크를 해야하는지 이유를 몇 가지 알아냈다.

  1. 효율성: 인증 실패를 했을 때, 페이지를 다시 로드하거나 다른 조치를 또 취해야 한다.
  2. 보안: 인증 실패를 했을 경우, 불필요한 페이지 접근을 방지한다.
  3. 자원 최적화(?): 효율성과 연관 있는데, 불필요한 페이지 로딩, 추가 작업을 피함으로써 서버/클라이언트 자원을 효율적으로 사용한다.