WEB
-
다중 서버 환경에서 세션 관리WEB 2023. 4. 8. 15:12
서버가 많은 요청을 수행함으로써 Scale out 방식으로 서버를 확장할 때 로드 밸런싱을 통해 부하 분산을 하는데 이때 발생하는 세션 불일치의 문제를 해결하는 방법을 알아보겠습니다. 웹 애플리케이션은 HTTP 프로토콜을 사용하는데 HTTP는 무상태성(Stateless)의 특징을 가지기 때문에 서버는 클라이언트의 상태를 저장하지 않습니다. 그래서 로그인과 같이 상태를 저장해야 하는 로직 같은 경우 쿠키와 세션을 이용할 수 있습니다. 쿠키와 세션으로 상태 유지 로그인 요청할 때 클라이언트가 로그인 요청을 하면 서버에서는 세션 id를 생성하고 서버가 가진 로컬 세션 저장소에 유저정보와 함께 저장합니다. 응답에 Set-Cookie 헤더로 세션 id를 담아 클라이언트로 보내면 브라우저가 쿠키를 저장합니다. 로그..
-
OAuth(w. 카카오 로그인)WEB 2023. 3. 8. 22:14
OAuth란? OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고, 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는 접근 위임을 위한 개방형 표준이다. 내가 만든 사이트에서 사용자의 아이디와 비밀번호를 받고 검증하는 방식 대신 카카오, 구글 등의 인증 방식을 사용함으로써 카카오, 구글과 같은 서비스의 자원에 접근할 수 있는 권한을 얻을 수 있습니다. 이때 OAuth 기반으로 인증이 이루어집니다. OAuth의 주체 Resource Owner(사용자) 실제 사용자 Resource Server에 자신의 정보를 가진 소유자 Client(나의 서비스) 사용자를 대신해 Resource Server에 접근하고 싶은 애플리케이션 Resour..
-
CORS(Cross-Origin Resource Sharing)WEB 2023. 2. 16. 21:45
SOP(Same Origin Policy)란? SOP는 동일 출처 정책이라는 말로 같은 출처의 리소스만 공유하는 보안 정책입니다. 원래 브라우저에서 서로 다른 출처끼리는 요청을 주고받는 것이 금지되어 있었습니다. 하지만 웹 생태계가 다양해지면서 여러 서비스들 간에 데이터를 주고받을 필요가 생겨 특정 조건을 만족하면 다른 출처에서도 데이터를 주고받을 수 있게 되었는데 그 조건 중 하나가 CORS입니다. SOP가 없이 다른 출처에서 자유롭게 데이터를 주고받을 수 있다면 어떻게 될까요? 만약 특정 사이트의 정보를 가로채려는 해킹 사이트에 접속을 했다고 해보겠습니다. A라는 사이트의 토큰 정보가 브라우저에 저장이 되어 있고, 해킹 사이트에 접속을 하게 되면 해킹 사이트에서 작성해 놓은 자바스크립트 코드가 실행되..