-
로그인Computer/CS 2021. 9. 9. 00:29
로그인 방식 관리
기본적인 HTTP는 stateless의 성질을 가지고 있기 때문에 로그인을 구현하기 위해서는 모든 요청에 대하여 회원 정보를 같이 동봉하여 보내야한다. 이러한 문제점을 해결하기 위해서 로그인에 대한 정보(유저 ID, Password 등)를 Backend 혹은 Frontend 단에 저장하는 방식
회원 정보 조희 및 대조 아이디, 비밀번호 조회 (비밀번호의 경우 암호화 되어있기 때문에 암호화 된 데이터를 비교) 아이디를 조회해서 유저 정보를 가져오고 비밀번호 대조까지 일치하면 로그인을 위한 준비 완료 HTTP는 무상태 프로토콜이기 때문에 유저에 대한 정보를 저장하는 관리 방법이 필요하다.
Session, Cookie
Session
정의 - 연결 상태를 의미하는 보안적인 다이얼로그 및 시간대, 세션은 연결 상태를 유지하는 것보다 연결 상태의 안정성을 더 중요시 여긴다. 회원 정보를 Backend server의 cookie에 저장한다. Backend에 저장하기 때문에 안전성을 더 확보할 수 있지만 상태값 관리를 하기가 힘들다. 분산 서버 환경에서는 특정 서버에만 데이터를 가지고 있기 때문에 다른 곳에서는 로그인을 했다고 인식하지 못한다.
Cookie
정의 - 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일 이 정보는 인터넷 사용자가 같은 웹사이트를 방문할 때마다 읽히고 수시로 새로운 정보로 바뀐다. 쿠키는 따로 지우는 요청이 있지 않는 이상 계속 남아있으며, Local(Front server)에 저장하기 때문에 탈취의 위험이 크다.
Redis, JWT
Redis (Remote Dictionary Server)
정의 - "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템 Redis는 Cache로 활용하며 웹서버에서 요청이 들어오면 데이터를 DB에서 가져오기 전 Cache에 데이터가 있는지 확인하고 있는 경우에 바로 클라이언트에 반환하는 형식이다. 동일한 데이터를 다시 호출하는 경우에 DB부하를 줄일 수 있고 빠른 속도도 기대할 수 있다.
JWT (Jason Web Token)
정의 - 선택적 서명 및 선택적 암호화를 사용하여 데이터를 만들기 위한 인터넷 표준 Payload는 몇몇 Claim 표명 Assert을 처리하는 JSON을 보관하고 있다 Cookie처럼 Local에 저장하지만 jwt는 암호화 복호화가 가능하다.
'Computer > CS' 카테고리의 다른 글
프로세스 (0) 2021.10.09 Multi Process와 Multi Thread (0) 2021.10.07 누적합의 확장 IMOS (0) 2021.09.30 Hashing - Chaining, Open Addressing (0) 2021.09.27 HTTP 상태 코드 (0) 2021.09.27