2017-10-09 1 views
1

일반 텍스트로 비밀번호를 전송, Webclient에에 HttpClient를에서 변경 일반 사용자 이름과 암호를 보내시겠습니까? 그렇다면 보안을 강화할 수있는 방법이 있습니까? (URL은 Https 주소 임)내가 사용하는 비동기 방식 HttpClient를이

+0

FYI [[HttpClient wrong]를 사용하고 있습니다.] (https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/). – maccettura

+0

@maccettura Oooo ... 흥미 롭습니다. 감사! – Yasskier

+0

HTTPS를 사용하는 것이지 자격 증명을 보호하는 라이브러리가 아닙니다. Base64 인코딩은 어쨌든 어떤 보호도되지 않습니다. – Crowcoder

답변

0

예 일반 텍스트 사용자 이름과 암호를 보내 게됩니다. 당신은 http를 통해 보내고 그들을 읽는 패키지를 선택할 수있는 네트워크 스니퍼가있을 수 있습니다. 사용자 이름과 암호가 보통이면 어 - 오. 스니퍼는 보통 도서관이나 커피 숍과 같은 공공 장소에서 냄새를 맡습니다.

+0

에 의해 보호됩니다. 그리고 당신의 해결책은 ....일까요? – Yasskier

+0

당신은 맞지만 WebClient 대 HttpClient와는 아무런 관련이 없습니다. – Crowcoder

+0

솔루션은 당신이 비밀을 사용하여 언급 한 것과 비밀을 사용하여 암호화 한 다음받을 때 해독합니다. – sdfbhg

1

두 경우 모두 "일반 텍스트"로 자격 증명을 보냅니다. 두 경우 모두 송신 전에 기본 64로 변환되지만 더 이상 안전하지는 않습니다. 유일한 차이점은 두 번째 (WebClient)의 경우 웹 클라이언트가 먼저 자격 증명없이 요청을 수행한다는 것입니다. 그런 다음 401 Unauthorized 응답을 받게되고 그 후에 정확히 똑같은 Authorization Basic <base64_here> 헤더로 두 번째 요청을 할 것이므로 해당 헤더를 즉시 적용하는 것보다 덜 효율적입니다. 그러나 두 경우 모두 정확히 동일한 Authorization 헤더를 보냅니다. 이미 말했듯이 - https 엔드 포인트에 요청하면 자격 증명이 제 3 자의 차단에 대해 안전해야하며 이미 암호화 된 채널을 사용하고 있다면 자체 암호화를 구현할 필요가 없습니다.

관련 문제