Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] 관리자 로그인 기능 구현 #970

Open
3 tasks
Tracked by #901
zeus6768 opened this issue Dec 14, 2024 · 4 comments
Open
3 tasks
Tracked by #901

[FEAT] 관리자 로그인 기능 구현 #970

zeus6768 opened this issue Dec 14, 2024 · 4 comments
Assignees
Labels
BE 백엔드 feature 기능 추가

Comments

@zeus6768
Copy link
Contributor

zeus6768 commented Dec 14, 2024

📌 어떤 기능인가요?

  • 관리자 페이지 로그인

📜 작업 상세 내용

  • Member Role 필드 추가
  • Enum Role.ADMIN, Role.MEMBER
  • loginCheck 또는 login API 호출 시 회원의 역할을 반환하고 저장해야함

⏳ 예상 소요 시간 (예상 해결 날짜)

24.12.19(목)까지 API 문서화 및 구현
#908 작업 이후 일정 재조정

🔍 참고할만한 자료(선택)

@zeus6768 zeus6768 changed the title 관리자 로그인 기능 구현 [FEAT] 관리자 로그인 기능 구현 Dec 14, 2024
@kyum-q kyum-q added feature 기능 추가 BE 백엔드 labels Dec 14, 2024
@kyum-q kyum-q added this to the 7차 스프린트 💭 milestone Dec 14, 2024
@kyum-q kyum-q assigned zeus6768 and unassigned zeus6768 and kyum-q Dec 14, 2024
@zeus6768
Copy link
Contributor Author

관리자 계정으로 로그인하면, 아래와 같이 관리하기 페이지를 볼 수 있어요.

Screenshot 2024-12-17 at 5 48 49 PM

그러려면 로그인 이후 서버로부터의 응답에 관리자 여부가 포함되어야 해요.

그런데 서버에서 관리자 여부를 boolean, string 등의 텍스트 정보로 응답한다면 보안에 문제가 있어요.

누구든 응답을 흉내낼 수 있기 때문이에요.

백엔드와 프론트엔드 간 사용할 수 있는 암호화 방식이 있으면 좋겠어요.

@Hain-tain
Copy link
Contributor

아니면 아예 관리자 페이지 자체에서 로그인을 하는 것은 어떤가요?
예를 들면 admin.code-zap.com 과 같은 url로 들어가서 로그인을 해야지만 관리자 페이지로 들어갈 수 있도록..!
저도 사실 어드민 페이지를 이런 식으로 만들어본 적은 없지만, 어차피 별도의 페이지로 관리할 것이라면 이런 방법도 있을 것 같아 코멘트 남겨보아요!

@zeus6768
Copy link
Contributor Author

아니면 아예 관리자 페이지 자체에서 로그인을 하는 것은 어떤가요? 예를 들면 admin.code-zap.com 과 같은 url로 들어가서 로그인을 해야지만 관리자 페이지로 들어갈 수 있도록..! 저도 사실 어드민 페이지를 이런 식으로 만들어본 적은 없지만, 어차피 별도의 페이지로 관리할 것이라면 이런 방법도 있을 것 같아 코멘트 남겨보아요!

인트라넷이나 VPC를 사용할 게 아니라면 관리자 페이지의 url을 온라인에 노출시키면 안 된다고 생각해요.

누가 봐도 관리자 로그인 페이지 같다면, 악의적인 공격의 대상이 되기가 너무 쉽기 때문이에요.

실제로 악의적인 요청은 매일같이 서버로 들어오고 있어요.

그래서 관리자를 위한 페이지는 일반사용자에게 404 Not found를 응답해야 한다고 생각해요. 그게 로그인 화면이더라도요.

그래서 안전한 방법이라고 생각한게 일반사용자용 로그인 페이지에서 관리자 계정으로 로그인 이후에 관리자 기능으로 접근하는 것이에요.

물론 관리자 계정으로 로그인한 이후에는 admin.code-zap.com, code-zap.com/admin 중 어떤 url을 사용하더라도 상관 없어요.

@zangsu
Copy link
Contributor

zangsu commented Dec 18, 2024

관리자 페이지의 url을 온라인에 노출시키면 안 된다고 생각해요.

오오 생각해보지 못했던 부분이군요. 찾아보니 이런 글도 있으니 저처럼 몰랐던 분들은 가볍게 읽어봐도 좋을 것 같아요.

관리자 여부를 boolean, string 등의 텍스트 정보로 응답한다면 보안에 문제가 있어요.

이 부분은 string 이 "admin" / "master" 과 같은 직관적인 값이 아닌 "user2"와 유추하기 힘든 값이어도 여전히 크게 문제가 될까요? 물론 충분히 응답을 흉내낼 순 있지만, 어떤 값을 흉내낼지 예측할 수가 없으니 어느 정도 해결이 될 것 같아서요!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드 feature 기능 추가
Projects
Status: Todo
Development

No branches or pull requests

4 participants