Bleeding edge

2022/10/11 - TIL 본문

ConnecTo

2022/10/11 - TIL

codevil 2022. 10. 11. 19:52

미니프로젝트에서 무조건 구현해야하는 과제가

  1. JWT를 이용하여 로그인
  2. SPA를 구현

두가지 조건을 준수해야한다.

오늘은, 이 두가지 조건중 JWT에 관한 것을 공부하였다.

JWT?

Json Web Token의 약자로 모바일이나 웹의 사용자 인증을 위해 사용하는

암호화된 토큰을 의미한다.

JWT는 어디에 저장할까?

보안 관련 대책 없이 JWT를 아무 곳에나 저장을 한다는 것은 우리 고객 정보는 가져가도 상관없다는 의미나 다름 없다. 그렇기 때문에 JWT는 일반적으로 localStorage와 cookie에 저장한다.

1. Localstorage

장점 : 자동으로 request에 담기는 쿠키와는 다르게 헤더에 담기기 때문에 XSS가 뚫리지 않는 이상공격이 힘들다.

단점 : XSS에 취약하다. 공격자가 localstorage에 접근하면, localstorage를 마음대로 다룰 수 있다.

2. Cookie

장점 : 쿠키의 httpOnly 옵션을 사용하면 자바스크립트에서 쿠키에 접근 자체가 불가능하기에 XSS 공격으로 쿠키 정보를 접근하는 것이 불가능하다.(httpOnly는 서버에서 설정할 수 있다. 단, XSS가 뚫린다면 httpOnly cookie로 요청이 변조될 수 있다.)

단점 : CSRF 공격에 취약하다. 자동으로 http request에 담아서 보내기 때문에 공격자가 request url을 안다면 request를 위조하기 좋다.

  1. JWT 장단점 정리

장점 : 인증을 위한 별도의 저장소가 필요 없으며 별도의 I/O작업 없는 빠른 인증 처리 확장성이 우수함

단점 : 토큰의 길이가 늘어날 수록 네트워크 부하 특정 토큰을 강제로 만료시키기 어렵다.

'ConnecTo' 카테고리의 다른 글

2022/10/13 - TIL  (1) 2022.10.13
2022/10/12 - TIL  (0) 2022.10.12
2022/10/07 - TIL  (0) 2022.10.07
2022/10/06 - TIL  (1) 2022.10.06
2022/10/05 - TIL  (0) 2022.10.05