我正在尝试访问httpbin.org具有基本的身份验证。我必须输入用户名和密码。在命令终端(linux)中使用 telnet 我至少执行:
telnet httpbin.org 80
HEAD /basic-auth/user/passwd HTTP/1.1
它给出 401 状态代码(未经授权)。
我现在想使用用户名和密码(在 Base64 中,输入为用户名:密码)以某种方式访问它。我该怎么做?我已经尝试过(401状态码之后)
HEAD /username:password HTTP/1.1
(但这会给出 404 状态代码)
答案1
HTTP 基本身份验证同时使用用户名和密码的 base-64 编码。对于用户名testuser
和密码hunter2
,您将获取该字符串testuser:hunter2
并对其进行 base64 编码。这会给你字符串dGVzdHVzZXI6aHVudGVyMg==
你问,如何获得该编码?大多数 POSIX 系统已openssl
安装,在这种情况下您可以使用echo -n "testuser:hunter2" | openssl base64 -base64
.这-n
是非常重要的,否则您还将newline
在编码中包含 a ,这将给您一个不正确的编码字符串(因为密码通常不以换行符结尾)。
然后您可以通过telnet
以下方式进行交易:
telnet hostname.example.com 80
GET / HTTP/1.1
Authorization: Basic dGVzdHVzZXI6aHVudGVyMg==