작성
·
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번 모두 단순 약속일 뿐입니다. 얼마나 많은 보안 레이어를 추가하냐는 기획에 달려있습니다.
감사합니다!