jwt토큰 어디에 저장해야 할까?

코드깎는 노인·2019년 12월 22일
0

보안

목록 보기
2/2

JWT토큰을 안전하게 저장하는방법에는 크게 두가지가 있다.첫번째로 웹스토리지에 저장하는 방법과 두번째로 쿠키에 저장하는 방법이 있는데 각각 장단점이 있다.

Web Storage

웹스토리지에는 크게 두가지가 있는데 로컬스토리지와 세션스토리지이다.
로컬스토리지에 저장하면 삭제하지 않는 이상 데이터가 보존된다.브라우저를 꺼도 데이터가 보존된다.
반면 세션스토리지에 저장한다면 현재 페이지와 방문할 페이지에서만 사용가능하다.브라우저를 종료하면 데이터는 삭제된다

Web Storage의 단점

· 쿠키와 다르게 로컬스토리지는 특정도메인으로 부터 격리되어 있어 데이터는 서브도메인으과같이 다른 도메인에서 접근불가능하다

· 웹스토리지는 같은 도메인의 자바스크립트로 접근가능하기때문에 XSS공격으로 부터 취약하다

·개발자는 JWT토큰을 반드시 http가 아닌 https로 보내야 한다

Cookie

쿠키는 브라우저 종료후 삭제될 수 있다.서버단에서 체크하여 만기를 설정할 수 있다.또한 쿠기는 자바스크립트뿐만아니라 서버단의 코드로 읽을 수 있고 httponly옵션 사용시 서버단에서만 읽을 수 있다.

Cookie사용의 단점

· 쿠키의 최대 저장용량은 4kb이므로 토큰에 많은 데이터는 저장하고자 할때 문제가 생길 수 있다.

·쿠키는 CSRF나 XSRF공격으로 부터 취약하다.이러한 공격은 사용자의 인증정보를 사용하여 사용자가 원하지 않는 액션을 취하게 한다.

profile
내가 볼려고 만든 블로그

0개의 댓글