인프런 커뮤니티 질문&답변

Seung Min Liang님의 프로필 이미지
Seung Min Liang

작성한 질문수

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

Refresh 토큰과 Access 토큰

보안 및 content type 질문

작성

·

363

0

Token 발급 과정에서

username:password 값을 base64 로 인코딩 후 authorization 헤더에 Basic $token 형태로 전송하는 것이 정석이라고 말씀해주셨습니다.

질문1.

Basic $token 형태는 인증정보가 그대로 base64 형태로 인코딩해줍니다. 그러면 누군가가 이 패킷을 까보기만 하면 데이터를 알 수 있는 것이 아닌가요..? 이 부분이 이해가 잘 안되네요. 설명부탁드립니다..

질문2.

추가로 챗gpt 에게 질문했을 때, 로그인할 때 content type 을 application/x-www-form-urlencoded 형태로 보내라고 하는데, 대부분은 json 형태로 전송하더라구요.. 설명부탁드립니다...

답변 1

-1

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

1) Basic $token 형태는 인증정보가 그대로 base64 형태로 인코딩해줍니다. 그러면 누군가가 이 패킷을 까보기만 하면 데이터를 알 수 있는 것이 아닌가요..? 이 부분이 이해가 잘 안되네요. 설명부탁드립니다..

맞습니다. base64 인코딩은 암호화가 아닙니다. 단순히 인코딩만 달리 했을 뿐이라 패킷을 까본다면 당연히 노출됩니다. 이는 Basic 토큰 전송시에만 생기는 문제가 아닙니다. 모든 요청은 패킷을 까볼 수 있다면 전부 노출 됩니다. 물론 원하신다면 여기에 복호화가 가능한 암호화를 해서 요청을 보내셔도 됩니다.

2) 추가로 챗gpt 에게 질문했을 때, 로그인할 때 content type 을 application/x-www-form-urlencoded 형태로 보내라고 하는데, 대부분은 json 형태로 전송하더라구요.. 설명부탁드립니다...

이 부분은 크게 상관 없습니다. 보통 서버는 x-www-form-urlencoded든 form-data든 json이든 모두 직렬화 되도록 구현됩니다. 서버에서 지원하는 형태로 요청을 보내시면 됩니다.

1, 2번 모두 단순 약속일 뿐입니다. 얼마나 많은 보안 레이어를 추가하냐는 기획에 달려있습니다.

감사합니다!

Seung Min Liang님의 프로필 이미지
Seung Min Liang

작성한 질문수

질문하기