728x90
반응형

인증과 인가의 기본 개념

  • 인증(Authentication): 사용자의 신원을 확인하는 과정 (놀이공원 입장권)
  • 인가(Authorization): 인증된 사용자에게 특정 리소스에 대한 접근 권한을 부여하는 과정 (놀이공원에서만 사용가능)

 

인증 방법의 발전

3.1. 기본 인증

- 사용자 ID와 비밀번호를 직접 입력

- 보안상 취약점 존재

 

3.2. 쿠키/세션 기반 인증

- 브라우저의 쿠키를 이용한 사용자 정보 저장 (클라이언트 저장)

- 서버 측 세션 관리의 도입 (서버 저장)

 

3.3. 토큰 기반 인증

- JWT(JSON Web Token) 활용

- 무상태성(Stateless) 구현으로 서버 부하 감소

- 토큰 기반 인증의 구체적 구현

 

4.1. 액세스 토큰과 리프레시 토큰

- 액세스 토큰: 짧은 유효기간, 실제 인증에 사용

- 리프레시 토큰: 긴 유효기간, 액세스 토큰 갱신에 사용

 

4.2. 토큰 기반 인증의 장단점

장점: 서버 확장성 개선, DB 조회 최소화

단점: 토큰 탈취 시 보안 위험

 

보안 강화 방법

- HTTPS 사용

- HttpOnly 옵션 활용

- 토큰 만료 시간 조절

 

기타 고려사항

- OAuth를 통한 외부 서비스 인증

- 인증 서버 분리

- SSL/TLS 활용

 

결론

인증과 인가 구현보안과 사용자 편의성 사이의 균형을 맞추는 과정입니다. 서비스의 특성과 요구사항에 맞는 최적의 방식을 선택하는 것이 중요합니다.

728x90
반응형
728x90
반응형

[추천링크]

https://hongong.hanbit.co.kr/%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EC%BF%A0%ED%82%A4-%EC%84%B8%EC%85%98-%ED%86%A0%ED%81%B0-%EC%BA%90%EC%8B%9C-%EA%B7%B8%EB%A6%AC%EA%B3%A0-cdn/

 

완벽 정리! 쿠키, 세션, 토큰, 캐시 그리고 CDN

웹 서핑을 하면서 어떤 사이트에 들어가면 쿠키를 설정하라는 문구를 본 적이 있을 거예요. 이 쿠키 때문에 쇼핑 사이트에 로그인하지 않아도 장바구니에 물건을 담아두거나 검색 기록에서 이

hongong.hanbit.co.kr

 

쿠키 (Cookie)

 

쿠키는 웹사이트가 사용자의 브라우저에 저장하는 작은 데이터 조각입니다.

예시: 쿠키는 마치 온라인 쇼핑몰에서 받은 쿠폰북과 같습니다. 이 쿠폰북에는 여러분이 방문한 매장, 관심 있는 상품, 장바구니에 담은 물건 등을 메모할 수 있습니다. 여러분이 직접 들고 다니면서 수정할 수 있죠.

 

주요 특징

  • 사용자의 브라우저에 저장됩니다.
  • 사용자가 직접 수정할 수 있습니다.
  • 보안에 민감한 정보는 저장하지 않는 것이 좋습니다.

 

세션 (Session)

 

세션서버에서 사용자의 상태 정보를 저장하고 관리하는 방법입니다.

예시: 세션은 백화점의 고객 관리 시스템과 비슷합니다. 고객이 VIP 라운지에 들어가면, 백화점은 고객의 ID를 확인하고 내부 시스템에서 고객 정보를 관리합니다. 고객은 자신의 정보를 직접 수정할 수 없고, 백화점만이 관리할 수 있습니다.

 

주요 특징

  • 서버에서 관리됩니다.
  • 사용자가 직접 수정할 수 없어 보안성이 높습니다.
  • 서버에 부하가 갈 수 있습니다.

 

토큰 (Token)

토큰사용자 인증을 위해 발급되는 암호화된 문자열입니다.

예시: 토큰은 놀이공원의 입장 팔찌와 유사합니다. 입구에서 티켓을 구매하면 특별한 팔찌를 받게 되는데, 이 팔찌에는 암호화된 정보가 들어있습니다. 놀이공원 내의 각 시설에서는 이 팔찌를 스캔해 입장 자격을 확인합니다.

 

주요 특징

  • 서버에서 발급하고 클라이언트가 보관합니다.
  • 암호화되어 있어 위조가 어렵습니다.
  • 서버의 부하를 줄일 수 있습니다.

 

캐시 (Cache)

캐시자주 사용되는 데이터를 임시로 저장해두는 장소입니다.

예시: 캐시는 카페의 진열장과 같습니다. 자주 주문되는 케이크는 주방에서 매번 만들지 않고 진열장에 미리 준비해둡니다. 손님이 주문하면 바로 제공할 수 있어 시간과 노력을 절약할 수 있죠.

 

주요 특징

  • 자주 사용되는 데이터를 빠르게 접근할 수 있는 곳에 저장합니다.
  • 서버의 부하를 줄이고 응답 속도를 높입니다.
  • 데이터의 일관성 관리에 주의가 필요합니다.

 

결론

이 네 가지 개념은 각각 고유한 특징과 용도를 가지고 있습니다:

  • 쿠키: 사용자 브라우저에 간단한 정보 저장 (클라이언트 저장)
  • 세션: 서버에서 중요한 사용자 정보 관리 (서버 저장)
  • 토큰: 안전한 사용자 인증 수단
  • 캐시: 빠른 데이터 접근을 위한 임시 저장소

웹 개발에서 이 개념들을 적절히 활용하면 보안성, 효율성, 사용자 경험을 모두 향상시킬 수 있습니다. 각 상황에 맞는 적절한 기술을 선택하는 것이 중요합니다.

728x90
반응형
728x90
반응형

참고영상 https://www.youtube.com/watch?v=tosLBcAX1vk 

 

쿠키 = 그냥 옮기는 시스템 매개체

토큰 = 서버가 기억하는 이상하게 생긴 텍스트 (ID카드처럼 서버에게 보여줘야 함)

JWT = 정보를 갖고 있는 토큰. DB없이 검증가능!

세션 = 요청받으면 서버에서 DB에 있는 데이터를 전달

 

유저 인증을 위해서는 JWT 혹은 세션을 사용할 수 있음

 

 

쿠키와 토큰은 모두 클라이언트와 서버 간에 정보를 저장하고 전송하는 데 사용할 수 있는 방법입니다. 그러나 둘 사이에는 몇 가지 주요 차이점이 있습니다.

  1. 저장 위치: 쿠키는 고객의 컴퓨터에 저장되고 토큰은 서버에 저장됩니다.
  2. 지속성: 쿠키는 여러 세션에 걸쳐 유지됩니다. 즉, 웹 사이트를 여러 번 방문하는 동안 유지해야 하는 정보를 저장하는 데 사용할 수 있습니다. 반면에 토큰은 일반적으로 수명이 짧고 단일 세션에만 유효합니다.
  3. 보안: 쿠키는 일반 텍스트로 저장되며 고객의 컴퓨터에 액세스할 수 있는 모든 사람이 액세스할 수 있습니다. 반면에 토큰은 일반적으로 암호화된 형태로 저장되며 더 안전합니다.
  4. 사용 사례: 쿠키는 일반적으로 사용자 기본 설정을 저장하고 웹 사이트에서 사용자 활동을 추적하는 데 사용됩니다. 토큰은 일반적으로 사용자를 인증하고 보호된 리소스에 대한 액세스 권한을 부여하는 데 사용됩니다.

요약하면 쿠키와 토큰은 모두 클라이언트와 서버 간에 정보를 저장하고 전송하는 방법입니다. 쿠키는 영구 데이터를 저장하는 데 사용되는 반면 토큰은 보안 인증 및 액세스 제어에 사용됩니다.

728x90
반응형

+ Recent posts