본문 바로가기

네트워크

(8)
Token 토큰 기반 인증 1. 개념 세션 기반 인증 : 서버 (혹은 DB)에 유저 정보를 담는 방식으로, 서버에 부담이 큽니다 JWT는 클라이언트에서 인증 정보를 보관하는 방법으로 부담을 클라이언트에게 넘겨주기 위해 고안된 대표적인 토큰 기반 인증입니다 클라이언트가 토큰을 가지고 있으면 서버에 해당 토큰을 보여주고 다양한 기능을 요청할 수 있습니다 클라이언트는 XSS 공격이나 CSRF 공격에 노출될 위험이 있어 민감한 정보는 가지고 있지 않는게 안전합니다 하지만 토큰은 유저 정보를 암호화한 상태로 담을 수 있고, 암호화 했기 때문에 클라이언트에 담을 수 있습니다 세션 기반 인증 VS 토큰 기반 인증 세션 : 인증 정보가 서버에 저장됩니다 토큰 : 인증 정보가 브라우저에 저장됩니다 2. 장점 1) Stateless..
Session 1. 세션기반 인증 (Session-based Authentication) 1) 로그인 로그인 조건 1. 서버는 사용자가 인증에 성공했음을 알고 있어야 합니다 2. 클라이언트는 인증 성공을 증명할 수단을 갖고 있어야 합니다 서버는 Client에 유일하고 암호화된 ID를 부여 (중요 데이터는 서버에서 관리) 암호화된 ID : 각 세션을 구분할 수 있는 Session Id로 클라이언트에서 세션 성공을 증명할 수단이 됩니다 * 사이트에서 로그인을 유지하기 위한 수단으로 쿠키를 사용, 쿠키에는 서버에서 발급한 Session Id가 저장됩니다 (session id가 담긴 쿠키는 클라이언트에 저장) 상대적으로 보안에 취약한 쿠키는 경우에 따라 자바스크립트로 접근이 가능하기에 Session Id는 암호화 과정이 필요..
Cookie 서버에서 클라이언트에 데이터를 저장하는 방법 중 하나로 http의 stateless 특징을 보완해주는 도구로 작은 문자열을 저장합니다. 서버가 원한다면 서버는 클라이언트에서 쿠키를 이용하여 데이터를 가져올 수 있습니다. 데이터 저장 이후 아무 때나 데이터를 가져올 수는 없으며, 특정 조건들이 만족하는 경우에만 다시 가져올 수 있습니다. 쿠키를 이용하는 것은 서버에서 클라이언트에 쿠키를 전송하는 것만을 의미하지 않고, 클라이언트에서 서버로 쿠키를 전송하는 것도 포함합니다. 서버는 일방적으로 브라우저에 응답의 헤더를 이용 해 쿠키를 줄 수 있습니다. 쿠키를 저장할 때에는 헤더를 이용합니다 (사용헤더: cookie, set-cookie) stateless 각각의 요청은 독립적이기 때문에 이전 요청에 대한 것을..
Hashing hash는 부수다는 뜻으로 (hashbrown) 다이제스트라고도 합니다. 암호화에서 해시란 원본 데이터를 잘게 부숴서 결과를 변형하는 것을 의미합니다. 원래 값을 잘게 부숴서 알아볼 수 없게 결과를 변형하는 것입니다. 암호화의 기본으로, 어떠한 문자열에 '임의의 연산'을 적용하여 다른 문자열로 변환하는 것으로, 항상 똑같은 결과를 내며, 사실상 복호화가 불가능합니다. 하지만 뻔한 password같이 레인보우 테이블에 기록된 경우에는 값을 알 수 있습니다. 해시 충돌: 경우에 따라 다른 input임에도 똑같은 해시 값이 나올 수 있습니다. 대표적인 hashing: SHA1, SHA256 적용: 비밀번호에 대한 해시 값이 데이터베이스에 저장됩니다. 조건 1. 모든 값에 대해 해시 값을 계산하는데 오래걸리지 ..
HTTPS HTTPS 프로토콜 HTTPS는 Hyper Text Transfer Protocol Secure Socket layer의 약자입니다. HTTP over SSL(TLS), HTTP over Secure라고 부르기도 합니다. 접속한 서버가 의도된 서버임을 보장하며 암호화된 채널을 제공합니다. 암호화 된 채널은 무결성과 기밀성을 지켜줍니다. 무결성(integrity): 메세지가 조작되지 않음 (메세지가 원본 그대로 잘 도착함) 기밀성(privacy): 메세지를 가로챌 수 없음 HTTPS의 개념 HTTP 요청을 SSL 또는 TLS라는 알고리즘을 이용해 HTTP 통신을 하는 과정에서 내용을 암호화하여 데이터를 전송하는 방법으로 중간에 인터넷 요청이 탈취되더라도 내용을 알아볼 수 없습니다. SSL(Secure So..
URL & URI 브라우저의 주소창에 입력한 URL은 서버가 제공되는 환경에 존재하는 파일의 위치를 나타냅니다. https://mari-mo.tistory.com:443/ 사이트에 접속하게 되면, mari-mo.tistory.com 주소가 가리키는 서버의 기본 폴더를 뜻합니다. CLI 환경에서 폴더와 파일의 위치를 찾아 이동하듯이, / (슬레시)를 이용해 서버의 폴더에 진입하거나 파일을 요청할 수 있습니다. 그러나 기본적인 보안의 일환으로 외부에서 직접 접근이 가능한 경우는 거의 없습니다. URL (Uniform Resource Locator) 네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타냅니다. URL은 scheme, hosts, url-path로 구분할 수 있습니다. scheme(가장 먼..
[HTTP/네트워크] 클라이언트 - 서버 클라이언트-서버 아키텍처 2티어 아키텍처 (클라이언트-서버 아키텍처) 상품 정보같은 리소스가 존재하는 곳과, 리소스를 사용하는 앱을 분리시킨 것 클라이언트: 리소스를 사용하는 앱으로 리소스를 요청할 수 있습니다. 서버: 클라이언트의 요청에 따라 리소스를 제공(serve)하는 곳(응답) 상품 정보는 서버에서 다루고, 클라이언트는 상품 정보를 조회합니다. 3티어 아키텍처 기존 2티어 아키텍처에 데이터베이스(리소스를 저장하는 공간)가 추가된 형태를 3티어 아키텍처라고 부릅니다. 일반적으로 서버는 리소스를 전달해주는 역할만 담당합니다. 데이터베이스는 창고와 같은 역할을 합니다. 클라이언트는 서버로 요청을 보내고, 서버는 요청에 따라 적절한 응답을 클라이언트로 회신합니다. 레스토랑에서 종업원(server)에게 음..
API API(Application Programming Interface) 애플리케이션 프로그래밍 인터페이스, 응용 프로그램 인터페이스는 응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻합니다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공합니다. REST API REST는 "Representational State Transfer"의 약자로, 웹에서 사용되는 모든 자원을 HTTP URI로 표현하고, HTTP Method를 통해 요청과 응답을 정의하는 방식을 말합니다. REST API를 사용한다는 것은, REST 아키텍처의 제약 조건을 준수한다는 말입니다. REST API 디자인 REST API는 공식적으로..

반응형