시간을내어 질문을 읽어 주셔서 감사합니다! 나는 오늘 JWT에 대해 연구 해왔다. 원래는 HTTP 동의 쿠키 (서버에서만 발행 할 수 있음)에 저장하지 않는 한 JWT가 두 가지 주요 유형의 공격에 개방되어 있다는 현대적인 합의가 있다고 생각했습니다.JWT - LocalStorage 대 SessionStorage에 저장
는 배경 : 그러나
, 나는 해커가 토큰에 대한 액세스를 얻고 경우만큼 당신은 JWT 페이로드의 기밀 사용자 정보를 두지 않는 한, 괜찮아 오늘 배운 해제 인코딩을 왜냐하면 대부분 사용자의 고유 ID 만 표시하기 때문입니다. 서버가 JWT를 확인하고 페이로드의 하위 키 안에있는 ID를 가져 오면 서버에서 사용자 비밀번호 및 기타 기밀 정보를 가져올 수 있습니다.
그럼에도 불구하고, 해커가 예를 들어 토큰 MID 요청/응답을 가로 채고 토큰이 만료되지 않는 경우 어떻게되는지에 대해서는 아직 100 % 명확하지 않습니다. 내 이해에서 해커는 사용자의 계정에 액세스하여 사용자 페이지를 둘러 볼 수 있으며 해커가 비밀번호를 재설정하더라도 해커의 토큰을 해지 할 실제 방법이 없습니다. 해커가 STILL 토큰이 있고 서버가 의도 한 사용자가 아니라는 것을 깨닫기에 충분히 똑똑하지 않습니다.
어쨌든, 나는 단지 API로 백엔드 서버를 사용하고 있기 때문에 나는 그 문제에 Http 만 쿠키 또는 쿠키를 사용하지 수 있다는 걸, 그것은 (쿠키는 프로그램을 직면 내 프런트 엔드 클라이언트 서버를 건너 제공 할 수없는 React, 예를 들면).
이 경우, 인증 JWT를 저장하는 장소는 LocalStorage 또는 SessionStorage 중 2 곳 밖에없는 것 같습니다. 브라우저를 닫아도 토큰이 파괴되지 않는다는 사실 때문에 대부분의 사람들이 LocalStorage를 사용하게 될 것입니다 . ,
하려면 로컬 또는 SessionStorage는 JWT를 저장하는 유일한 '합리적인'장소임을되는 다른 것보다 안전하고 왜 하나입니다
내 주요 질문은 이것이다?
고맙습니다!