telnetでBASIC認証対応http接続

例えば http://example.com/index.htmlに接続すると仮定してtelnetを用いると

> telnet example.com 80

とコマンドを打ち続いて

GET /index.html HTTP/1.1
User-Agent: Telnet [ja] (Windows)
Host: example.com

と入力してエンター2回押すのですがBASIC認証だとこのままでは弾かれてしまいます。確かサーバーのログを見た感じではリクエストの際にユーザ名とパスワードを同時に送っているっぽいのでググって見たらAuthorizationヘッダで実現しているサンプルがありました。

Authorization: Basic aG9nZTpmdWdh

といった感じでAuthorization: +認証種別+BASE64エンコードされた文字列のようです。(今まで素で送っているものと思ってた。。。盗聴されれば本当のユーザ・パス知るまでもないのですが)

BASE64のコードを生成するには私の環境ではopensslを用いる方法を取ってみました。

> echo -n ‘hoge:fuga’ | openssl enc -e -base64
aG9nZTpmdWdh

いい加減、自由にヘッダの設定できるカスタムブラウザ作らないとな…。(携帯3キャリ全機種のプロファイルを登録できるような形で)

HTTP クライアントを作ってみよう(5) – Basic 認証編 –
http://x68000.q-e-d.net/~68user/net/http-auth-1.html