1

인증에 사용할 인증을 결정하는 방법. (예 : 양식 기반 인증 또는 토큰 기반 인증).폼 기반 인증과 토큰 기반 인증의 차이점

폼/세션/쿠키 기반 인증에 대해 토큰 기반 인증을 사용하면 어떤 이점이 있습니까? 나는 여러 기사를 온라인으로 읽었지만 여전히 불분명하다.

누구나 웹 및 모바일 플랫폼 사용자 인증을 위해이 두 가지를 선택하는 방법을 설명 할 수 있습니까?

답변

2

내가 알지 못하는 특별한 필요가 없다면 JWT가 더 좋습니다.

세션에 쿠키가 필요하고 쿠키는 브라우저에서만 작동합니다. JWT : 기본적으로 JSON 형식의 데이터이므로 다른 플랫폼에서 사용할 수 있습니다.

또한 JWT가보다 안전합니다. 쿠키를 영구 인증 메커니즘으로 사용하는 경우 CSRF 공격에 취약 할 수 있습니다. 해커는 희생자를 자신의 웹 사이트로 속여 무언가 버튼을 클릭 할 수 있으며 각 요청과 함께 쿠키가 자동 전송되기 때문에 그의 요청은 피해자로 전송됩니다.

JWT를 사용하면 저장 용량에 상관없이 데스크톱에 localStorage을 저장할 수 있습니다. JWT는 귀하로부터의 각 요청과 함께 수동으로 보냅니다. 따라서 위의 시나리오는 발생하지 않습니다.

해커가 JWT를 localStorage에서 수정하고 더 많은 소유권 주장을 추가 할 수 있습니까? 즉, 사용자 유형을 '사용자'에서 '관리자'로 변경하십시오. 서버에만있는 개인 키가 필요합니다. Auth0을 시험해보고 jwt.io에서 테스트해볼 수 있습니다.

이러한 것들이 중요한 점입니다. 다른 이점도 있지만 Google을 통해 쉽게 찾을 수 있습니다.

+0

그래서 저장 프로 시저에서 읽은 사용자 세션 개체는 해커가 어떤 방법 으로든 수정할 수 있습니까? – gorp88

+0

저장 프로 시저? 당신이 localStorage를 의미한다면, 아니오. 토큰을 생성/수정하는 유일한 방법은 서버에 보관중인'secret' 키가있을 때입니다. – lock22

1

저는 RESTful API가있는 토큰 베이와 웹 응용 프로그램 (일반적으로 서비스 계층을 처리하기위한 API를 빌드하므로 SAP 제외)을 사용합니다.

여기에서 주된 추론은 간단합니다. 모든 API는 헤더 나 본문에 모든 것이 전송되기를 원합니다. 그런 토큰이 기본 방법입니다. 그러나 MVC를 사용하면 데이터뿐 아니라 뷰를 렌더링하고 있으므로 신경 쓰지 않아도됩니다.