-
인증 & 보안 기초Topic/Node.js | server 2022. 2. 7. 22:16반응형
HTTPS
HTTPS: Hyper Text Transfer Protocol Secure socket layer
인증에서 HTTPS 프로토콜을 사용해야만 하는 이유
HTTP보다 상대적으로 안전하고, 데이터 제공자의 신원을 보장받을 수 있기 때문이다.
암호화
HTTPS 프로토콜의 특징 중 하나는 암호화된 데이터를 주고받기 때문에,
중간에 인터넷 요청이 탈취되더라도 그 내용을 알아볼 수 없다.그렇기 때문에 데이터를 암호화하여 전송하는 HTTPS 프로토콜을 사용한다면 비밀번호와 같은 중요한 데이터가 유출될 가능성이 HTTP 프로토콜보다 현저히 적어지게 된다.
인증서
브라우저가 응답과 함께 전달된 인증서 정보를 확인할 수 있는 특징을 가진다.
브라우저는 인증서의 도메인과 데이터를 제공한 제공자의 도메인을 비교할 수 있기 때문에
인증서의 도메인 정보와 데이터 제공자의 도메인 정보가 '중간자 공격'을 감지하여 보안 위협으로부터 사용자 보호에 용이하다.Cookie 🍪
서버에서 클라이언트에 데이터를 저장하는 방법 중 하나이다.
-> 서버가 원한다면 서버는 클라이언트에서 쿠키를 이용하여 데이터를 가져올 수 있다.
-> 쿠키를 이용하는 것은 단순히 서버에서 클라이언트에 쿠키를 전송하는 것만은 의미하지 않고 서버로 쿠키를 전송하는 것도 포함서버가 클라이언트에 데이터를 저장할 수 있다.
서버는 쿠키를 이용하여 데이터를 저장하고 원할 때 이 데이터를 다시 불러와 사용할 수 있다.
-> 하지만 데이터를 저장한 이후 아무 때나 데이터를 가져올 수는 없다.
-> 데이터를 저장한 이후 특정 조건들이 만족하는 경우에만 다시 가져올 수 있다. (쿠키 옵션으로 표현 가능 !)- 도메인
우리가 흔하게 보는 www.google.com 과 같은 서버에 접속할 수 있는 이름이다.
쿠키 옵션에서 도메인은 포트 및 서브 도메인 정보, 세부 경로를 포함하지 않는다.
따라서 요청해야 할 URL이 http://www.localhost.com:3000/users/login 이면 도메인은 localhost.com이 된다. - Path
세부 경로는 서버가 라우팅할 때 사용하는 경로다.
만약 요청해야할 URL이 http://www.localhost.com:3000/users/login인 경우라면
세부 경로는 /users/login이 된다. - MaxAge or Expires
쿠키가 유효한 기간을 정하는 옵션이다.
MaxAge는 앞으로 몇 초 동안 쿠키가 유효한지 설정하는 옵션이다.
Expires는 MaxAge와 비슷하지만, 언제까지 유효한지 Date를 지정해줄 수 있다.
이후 지정된 시간, 날짜를 초과하게 되면 쿠키는 자동으로 파괴된다.
** 두 옵션 모두 지정되지 않는다면 브라우저 탭을 닫아야 쿠키가 제거된다. - Secure
쿠키를 전송해야 할 때 사용하는 프로토콜에 따른 쿠키 전송 여부를 결정한다.
해당 옵션이 true로 설정된 경우, HTTPS 프로토콜을 이용하여 통신하는 경우 메나 쿠키를 전송할 수 있다. - HttpOnly
자바스크립트에서 브라우저의 쿠키에 접근 여부를 결정한다.
해당 옵션이 true인 경우, 자바스크립트에서는 쿠키에 접근이 불가능하다.
이 옵션이 false인 경우, 자바스크립트에서 쿠키에 접근이 가능하므로 XSS 공격에 취약하다! - SameSite
Cross-Origin 요청을 받은 경우, 요청에서 사용한 메소드와 해당 옵션의 조합으로 쿠키 전송 여부를 결정하게 된다.
LAX: Cross-Origin 요청이면 GET 메소드에 대해서만 쿠키를 전송할 수 있다.
Strict: Cross-Origin이 아닌 same-site 인 경우에만 쿠키를 전송할 수 있다.
None: 항상 쿠키를 보내줄 수 있다. // 다만 쿠키 옵션 중 Secure 옵션이 필요하다.
(이 때 same-site는 요청을 보낸 Origin과 서버의 도메인이 같은 경우를 말한다.)
반응형'Topic > Node.js | server' 카테고리의 다른 글
쿠키, 세션, 토큰 정리 (0) 2022.02.10 jwt, 쿠키, 세션, 토큰 (0) 2022.02.08 클라이언트 빌드 및 배포 (0) 2022.01.11 EXPRESS, 리팩토링, Middleware (0) 2021.12.30 Web Server 기초, CORS, Node.js, HTTP 트랜잭션 해부 (0) 2021.12.29 - 도메인