jwt 인터페이스의 안전성 실현
Json web token (JWT) 은 네트워크 응용 환경 에서 성명 을 전달 하기 위해 실 행 된 JSON 기반 의 개방 기준 (RFC 7519) 입 니 다. 이 token 은 치밀 하고 안전 하 며 분포 식 사이트 의 단일 로그 인 (SSO) 에 특히 적 용 됩 니 다.장면. JWT 의 성명 은 일반적으로 신분 제공 자 와 서비스 제공 자 간 에 인 증 된 사용자 신분 정 보 를 전달 하여 자원 서버 에서 자원 을 얻 을 수 있 도록 하고 다른 업무 논리 에 필요 한 성명 정 보 를 추가 할 수 있 습 니 다. 이 token 은 인증 에 직접 사용 할 수도 있 고 암호 화 될 수도 있 습 니 다.
token 기반 인증 체 제 는 http 프로 토 콜 과 유사 하 며 상태 가 없습니다. 서버 에서 사용자 의 인증 정보 나 세 션 정 보 를 보관 할 필요 가 없습니다. 이 는 token 인증 체 제 를 바탕 으로 하 는 응용 프로그램 이 사용자 가 어느 서버 에 로그 인 했 는 지 고려 할 필요 가 없다 는 것 을 의미 합 니 다. 이 는 응용 프로그램의 확장 에 편 의 를 제공 합 니 다. 절차 상 이 렇 습 니 다.
token
token, token token ,
token , ,
, CORS( ) , Access-Control-Allow-Origin:*。
JWT 의 구성
첫 번 째 부분 은 머리 (header) 라 고 부 르 고, 두 번 째 부분 은 부하 (payload, 비행기 에 실 린 물건 과 유사) 라 고 부 르 며, 세 번 째 부분 은 비자 (signature) 입 니 다.
header
jwt 의 머리 에 두 부분 정 보 를 담 습 니 다.
성명 형식, jwt 성명 암호 화 알고리즘 입 니 다. 보통 HMAC SHA 256 을 직접 사용 합 니 다.
그 다음 에 머리 를 base 64 암호 화 (이 암호 화 는 대칭 적 으로 복호화 할 수 있 음) 하여 첫 번 째 부분 을 구성 했다.
하중 은 유효한 정 보 를 저장 하 는 곳 이다. 이 이름 은 비행기 에 실 린 상품 을 가리 키 는 것 처럼, 이러한 유효한 정 보 는 세 부분 을 포함한다.
표준 에 등 록 된 성명 공공 성명 개인 성명
jwt 의 세 번 째 부분 은 비자 정보 입 니 다. 이 비자 정 보 는 세 부분 으로 구성 되 어 있 습 니 다.
header (base 64 후의) payload (base 64 후의) secret
이 부분 은 base 64 암호 화 된 header 와 base 64 암호 화 된 payload 를 사용 해 야 합 니 다. 연 결 된 문자열 은 header 에서 설명 한 암호 화 방식 으로 소금 secret 조합 암호 화 를 한 다음 jwt 의 세 번 째 부분 을 구성 합 니 다.
이 세 부분 을 사용 합 니 다. 완전한 문자열 로 연결 하여 최종 jwt 를 구성 합 니 다.
요청 주소 에 token 을 추가 하고 검증 합 니 다.
CSRF 공격 이 성공 할 수 있 었 던 것 은 공격 자가 사용자 의 요청 을 위조 할 수 있 었 기 때 문 이 며, 이 요청 의 모든 사용자 검증 정보 가 쿠키 에 있 었 기 때문에 공격 자 는 이러한 검증 정 보 를 모 른 채 사용자 자신의 쿠키 를 직접 이용 해 보안 검증 을 통과 할 수 있 었 다. 이 를 통 해 CSRF 공격 을 막 는 관건 은 요청 에 공격 자가 모 르 는 곳 에 넣 는 것 임 을 알 수 있다.위 조 될 수 있 는 정보, 그리고 이 정 보 는 쿠키 에 존재 하지 않 습 니 다. 이 를 감안 하여
HTTP token, token, token token , CSRF
. , username password
, , jwt token.
, loginId token , ,
, token loginId, loginId ,
, 。
사용 방법
token 。 ( web cookie , )
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.