주문을 외워봐 -6- 토큰인증의 보안

api 와 클라이언트의 인증 문제를 어떻게 할 것이냐

라는 고민이 생겨 이래저래 정보를 수집해 보았는데,

아무래도 JWT 기반의 토큰 인증 방식이 많이 쓰이는 것 같아

JWT 토큰 인증 방식을 채택하였다.

 

클라이언트 단에서는, AccessToken과 UserData의 유무를

판독하고, Private한 Route에 접근할 수 있게 구조를 설계했는데,

 

토큰을 어디가 저장할지에 대한 고민이 생겼다.

 

방법은 2가지 정도로 나왔는데

 

1. Cookie Header에 저장

2. Authorization Header에 저장

 

이 두가지 방법이었다.

 

쿠키헤더에 저장하는 방식은

HttpOnly 와 Secure Option을 통하여 

Cross-Site Scripting을 방지하여 사용자 토큰의

값이 변경되지 않는다는 장점이 있었고,

 

Authorization Header에 저장하는 방식은

Xss와 CSRF 공격 둘다 강하지만,

결국 서버에 저장하는 토큰 조차, 1차적으로

보관을 클라이언트 사이드에서 해야된다는 문제가 생긴다.

그리고, 헤더에 계속 토큰을 추가해야되는 것도 

1인 개발로써 문제가있고,

 

훗날 알파 버전이후에 CSRF 보안을 잡는다고 생각하고,

당장에는 쿠키헤더에 저장하는 방식을 이용하려고 한다.

 

Comment