1. 쿠키(Cookie)와 세션(Session) 개념이 등장한 이유HTTP 프로토콜은 비상태성(stateless)를 가지고 있다. 이게 무슨 말이냐면, 동일한 클라이언트가 서버로 요청을 보냈을 때, 서버는 이전의 요청들을 기억하지 않는다는 것이다. 예를 들면, 메인 페이지와 로그인 페이지가 존재할 때, 로그인을 완료하고 메인 페이지로 이동하였을 때, 서버는 로그인을 했는지 알 수 없다는 것이다.사용자가 로그인을 했는지 여부를 알 수 없으므로 모든 요청마다 로그인을 해야할 것이다. 따라서 사용자의 상태를 유지하기 위해서 쿠키(Cookie)와 세션(Session)이 도입되었다. 2. 쿠키(Cookie)2-1. 쿠키(Cookie)란?쿠키란 클라이언트의 브라우저에 사용자의 상태 정보를 저장하는 데이터 파일이다...
1. 인증(Authentication)과 인가(Authorization)인증(Authentication)은 사용자가 서비스에 등록되어 있는지 검증하기 위해 사용된다. 예를 들어, 사용자가 입력한 정보가 서비스에 등록되어 있다면 인증된 사용자라고 할 수 있다.인가(Authorization) 는 인증이 완료된 사용자가 서버에서 보호하고 있는 자원에 접근할 수 있는지 권한을 확인하는 과정이다. 먼저 인증이 되어야만, 인가 여부를 확인할 수 있다. 예를 들어, 게시판에 글을 작성하는 것은 로그인 된(인증된) 사용자(USER, ADMIN)라면 누구나 할 수 있지만, 관리자 페이지에 접근하는 것은 관리자 권한(ADMIN)이 있는 사람만 가능할 것이다. 인증(Authentication), 인가(Authorizatio..
직접 구현하지 않고 세션을 사용하는 방법이 있으나 세션이 어떻게 만들어지는지 이해를 하고 쓰는 것과 아닌 것은 큰 차이가 있을 거라 생각합니다. 편하게만 개발하려고 하면 발전이 없다고 생각합니다. 본 글은 쿠키와 세션에 대한 이해를 하고 있음을 가정하고 작성된 글입니다. 쿠키와 세션 쿠키에 중요한 정보를 담아 사용하게 된다면 누군가가 악용할 위험이 있다. 개발자 모드에 진입에서 네트워크 정보를 보면 쿠키에 대한 정보가 그대로 드러난다. 따라서 쿠키에는 세션하고 연결할 정보만 저장해야 한다. 쿠키에 담을 정보를 세션에 담으면 된다. 세션은 서버에서 관리되기 때문에 클라이언트 차원에서 노출에 대한 위험이 없다. 사진을 보면 쿠키의 mySessionId와 세션의 sessionId가 동일하다. 중요한 정보는 세..