나는 실제 사용자 이름과 암호로 curl -u
을 사용하는 것이 안전하다는 것을 알아 내려고하고 있습니다. 이러한 요청의 헤더를 조사하면 사용자 이름과 암호가 일종의 해시로 변환 된 것으로 보입니다. 이 암호화 또는 압축은 아래 예에서 어떻게 cUrl -u는 사용자 이름과 암호를 해시로 변환합니까?
jujuba:lalalala
가
anVqdWJhOmxhbGFsYWxh
로 전환되는 것으로 보인다? 안전 해요? 수신자가이 데이터를 어떻게 디코딩합니까? 당신이 명령을 실행하면
curl -u jujuba:lalalala -i -X Get http://localhost:80/api/resource -v
* timeout on name lookup is not supported
* Trying 127.0.0.1...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to localhost (127.0.0.1) port 80 (#0)
* Server auth using Basic with user 'jujuba'
> Get /api/resource HTTP/1.1
> Host: localhost
> Authorization: Basic anVqdWJhOmxhbGFsYWxh
기본 인증은 헤더에 Base64 인코딩을 사용합니다. 연결이 암호화되어 있지 않으면 (예 : HTTPS를 사용하여) 보안되지 않습니다. –
안전하지 않은 경우이를 수행 할 이유가 있습니까? 특히 압축 된 것처럼 보이지 않습니다. –
[RFC 2617, Section 2] (https://tools.ietf.org/html/rfc2617#section-2)에서는 HTTP 기본 인증 사양을 다루고 있습니다. 클라이언트가 해시를 만드는 방법과 서버가이를 처리하는 방법입니다. – Castaglia