2017-01-06 2 views
0

인증을 위해 JWT를 사용하는 평균 스택 응용 프로그램이 있습니다. 나는 Satellizer (Angular 모듈)를 사용하여 JWT 인증 흐름을 구현했다. 앱을 통해 요청이있을 때마다 베어러 토큰과 함께 Authorization 헤더를 보냅니다.브라우저 주소 표시 줄에서 직접 URL을로드 할 때 JWT가 전송되지 않습니다.

내 문제는 주소창을 통해 /dashboard이 작성되었다는 제한된 URL 요청이있을 때 브라우저가 인증 헤더를 보내지 않아서 요청을 차단하는 것입니다.

그래서 제한된 URL을 요청할 때 브라우저가 인증 헤더를 보내도록하려면 어떻게해야합니까?

답변

1

사용자가 술집에 직접 주소를 입력하면 오류 양식으로 리디렉션하는 것 외에는 아무 것도 할 수 없습니다. 브라우저가 특정 헤더를 전송하지 않습니다

그러나 사용자가 클릭하는 링크를 작성하는 경우 URL 링크 자체에 JWT 토큰을 추가 할 수 있습니다. /dashboard?jwt=. 서버에서이 인증 케이스를 고려해야합니다.

이 경우 브라우저는 URL을 캐시하고 로그에 기록 할 수 있습니다. JWT가 서명되고 암호화되지 않은 경우 공격자가 로그 파일에 대한 읽기 액세스 권한을 가진 경우 중요한 정보가 유출 될 수 있습니다. 또한 세션 하이재킹 공격이 가능할 수도 있습니다.

+0

동의하지만 쿼리 문자열을 통해 토큰을 보내는 것이 좋습니다. 권리? –

+1

나는 당신에 동의합니다. 브라우저는 URL을 캐시하고 일부 로그에 쓸 수 있습니다. JWT가 서명되고 암호화되지 않은 경우 공격자가 로그 파일에 대한 읽기 액세스 권한을 가진 경우 중요한 정보가 유출 될 수 있습니다. 세션 하이재킹 공격도 가능할 수 있습니다. 따라서 OP는이 옵션을 사용할 때주의해야합니다. – pedrofb