様々なブラウザで、ID・パスワードを含むURLでBASIC認証できるか確認してみた

BASIC認証が必要となるWebサイトにアクセスする場合、URLにIDとパスワードを埋め込んでBASIC認証の入力ダイアログを表示させずに認証する方法があります(RFC 3986 3.2.1)。この認証方法を調べていたところ、Internet Explorer では MS04-004 以降無効になっていることを知りました(KB834489)。「では、他のブラウザではどうなのだろう」と思い、確認してみました。

確認結果

動作OS ブラウザ/バージョン 結果
Windows 7 SP1 Internet Explorer 9.0.8112.16421 失敗
Mozilla Firefox 16.0.2 成功(確認ダイアログ表示)
Opera 12.10 成功
Google Chrome 23.0.1271.64 m 成功
Android 4.0.4(Galaxy Nexus) ブラウザ 4.0.4-SC04DOMLE3 失敗
Chrome 18.0.1025464 成功
iOS 6.0.1(iPad2) Safari 成功(警告ダイアログ表示)
Chrome 21.0.1180.82 失敗
3DS Ver 4.4.0-10J インターネットブラウザー 1.7498 成功

確認手順、確認時のスクリーンショット(特徴があったもののみ)を以下にまとめます。

確認手順

以下の確認環境にて、1から3の手順で確認しました。


  1. ブラウザで http://192.168.0.1/ にアクセスして、BASIC認証のダイアログウインドウが表示されることを確認する([キャンセル]を選択)。
  2. ブラウザで BASIC認証のIDとパスワードを含む http://user:password@192.168.0.1/ にアクセスする*1
  3. 2の結果から「成功」または「失敗」を判断する。

確認時のスクリーンショット(特徴があったもののみ)

Internet Explorer 9.0.8112.16421

前述の手順2にて、Internet Explorer 9http://user:password@192.168.0.1/ にアクセスしたところ、下記の画像のようにアクセスできませんでした。

Mozilla Firefox 16.0.2

前述の手順2にて、Firefox 16.0.2 で http://user:password@192.168.0.1/ にアクセスしたところ、下記の画像のように確認ダイアログが表示されました。このダイアログにて「OK」を選択すると、BASIC認証に成功して http://192.168.0.1/ にアクセスできました。「キャンセル」を選択すると、192.168.0.1 へのアクセスを中止できます*2

ブラウザ 4.0.4-SC04DOMLE3

前述の手順2にて、ブラウザ 4.0.4-SC04DOMLE3 で http://user:password@192.168.0.1/ にアクセスしたところ、下記の画像のように BASIC 認証ダイアログが表示されました。これは手順1の結果と同様であったため、手順3では「失敗」と判断しました。

SafariiOS 6.0.1)

前述の手順2にて、iOS 6.0.1 上の Safarihttp://user:password@192.168.0.1/ にアクセスしたところ、下記の画像のように警告ダイアログが表示されました。このダイアログにて「この警告を無視」を選択すると、BASIC認証に成功して http://192.168.0.1/ にアクセスできました。

*1:このブログ記事でのidとpasswordは実際のものと異なります

*2:今回はパケットキャプチャデータまで確認していないため、実際に HTTP リクエストが送信されていないか確認していません。