Authentication
telnet 通過身份驗證訪問網站
我正在嘗試使用基本身份驗證訪問**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 狀態碼)
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==