« 質問サイトの問題点 | メイン | 再びAWStatsにセキュリティホール »

2005年3月10日

IEのダイジェスト認証のバグ

カテゴリー: [自宅サーバ]

いままで,Webのアクセス制御にBasic認証を使っていました.これはパスワードが平文で流れます.
いつかは変えようと思っていたので,今回,Digest認証にかえたのですが,一部のページがIE(Internet Explorer)だと見られません.URLがマッチしないというようなメッセージとともに,400 Bad Requestになってしまいます.

リクエストとレスポンスを覗いてみたところ,URLがCGIを指していて,hoge.cgi?foo=bar のようにパラメータを渡している場合,IEの送り出すAuthorizationヘッダの,uri に ?以降が含まれないことが分かりました.最初は設定ミスかと思ったのですが,調べたら,どうも,これはIEのバグらしいのです.(HTTP クライアントを作ってみよう(6) - Digest 認証編 -
Digest認証は,URLによってDigestが変わるわけで,これが間違っていたらお話になりません.
このバグ,いつまでたっても直らないそうで,Apache-2.0.51 から,これを強制的に回避するオプションが追加されたようです.

こんな風にして,UserAgent にMSIEが含まれている場合だけ,回避オプションをONにします.

BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On

ところが,私は何となくapache 1.3系を使っています.特に理由はないんですが.
mod_auth_digest にパッチでも当てようかと考えたりもしましたが,管理が面倒になるだけなので,すなおに apache 2.0 系に変えました.

しかし,Microsoft は何でこんな単純なバグを直さないのでしょうね.直すと互換性の問題が起きるというわけでもないだろうし.謎です.というか,どうやるとこういうバグを作れるのか^^;
MicrosoftのWebサーバであるIIS(Internet Information Services)は,どういう実装になっているんでしょう.こういうバグありのリクエストを処理できるんでしょうか.まあ,身内のソフトだから処理できるんだろうと思いますが...
せめて,このくらいは標準に従ってほしいです.

投稿者 shingo : 2005年3月10日 23:23

トラックバック

このエントリーのトラックバックURL:
http://isolinear.info/cgi-bin/mt/mt-tb.cgi/61

このリストは、次のエントリーを参照しています: IEのダイジェスト認証のバグ:

» clock movement kit from clock movement kit
Find the best new clock parts suppliers currently now in stock in addition at... [続きを読む]

トラックバック時刻: 2017年10月 7日 01:38