항해14기 본과정/항해14기 개발일지

[항해 14기] 개발일지18 (쿠키/세션, JWT, RDS)

스쿼트잘함 2023. 4. 24. 22:01

node.js 숙련

 

1. 쿠키/세션

1) cookie

- 브라우저가 서버 응답으로 Set-Cookie 헤더를 받은 경우 해당 데이터를 저장한 뒤 모든 요청에 포함하여 보냄
- 데이터를 여러 사이트에 공유할 수 있기 때문에 보안에 취약
- 쿠키는 `userId=user-1321;userName=sparta` 와 같이 문자열 형식으로 존재하며 쿠키 간에는 세미콜론`(;)` 으로 구분

2) session

- 쿠키를 기반으로 구성된 기술

- 클라이언트가 언제나 데이터를 확인 할 수 있던 쿠키와는 다르게 세션은 데이터를 서버에만 저장하기 때문에 보안성이 좋음

- 사용자가 많은 경우 서버에 저장해야 할 데이터가 많아져서 서버 컴퓨터가 감당하지 못하는 문제 발생

- cookie-parser : 요청된 쿠키를 req.cookie객체로 변환해주는 미들웨어 -> 이후 쿠키명령어 간소화

 

 

 

2. jwt

1) 개요

- JSON 형태의 데이터를 안전하게 교환하여 사용할 수 있게 해줌(암호화)
- 인터넷 표준 규격
- 다양한 암호화 알고리즘을 사용 가능
- `header.payload.signature` 의 형식으로 3가지의 데이터를 포함

- 헤더는 signature에서 어떤 암호화를 쓴건지 나타냄 / 페이로드는 입력 데이터가 저장됨 / 시그니쳐는 토큰 변조여부 확인

 

2) 특성

- 변조가 불가능하지만 누구나 복호화가 가능하여 민감한 정보 입력은 지양

- 인증서버 발급 확인 가능(위조/변조 확인)

3) 사용 예시

- 좌측 Decode / 우측 변조확인

 

 

 

3. RDS

1) 구매/생성 과정

- AWS - RDS - 데이터베이스 생성 - 표준생성/MySQL - 프리티어(일정기간무료)

- db식별자 입력 - 이름/비번 입력 - 인스턴스/스토리지 스킵 - 퍼블릭액세스 '예' - vpc보안그룹 새로생성 / 이름입력

- 가용영역 아무거나 - 추가구성 초기이름 입력 - 데이터베이스 생성

2) 포트 열기

- RDS - 데이터베이스 - 생성한 서버 클릭 - 연결&보안 - 보안 -vpc보안그룹 (식별자)시큐리티 - 보안그룹id

- 인바운드 규칙 편집 - 소스anywhere ipv4 - 0.0.0.0/0

- 규칙추가/유형:사용자지정tcp/포트범위3306/소스anwhere ipv6 ::/0 - 규칙 저장

3) 연결

- vscode my sql익스텐션 설치

- RDS - 데이터베이스 - 엔드포인트 복사

- mysql 익스텐션에서 + 클릭 - host:엔드포인트/설정했던이름,패스워드입력/port:3306/이후나오는것 엔터로스킵