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

2005年03月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年03月10日 23:23

トラックバック

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

コメント

Basic認証 over SSL じゃいかんの?

投稿者 noguchi : 2005年03月14日 13:32

それも考えたけど,オレオレ証明書作るよりはいいかな,と.別に通信内容を保護したいわけじゃないし.

どうせ使うのは自分だけだから,どっちでもよかったんだけど,Digest認証の方が設定も簡単だから.
こんなバグさえなければ,もっと簡単なはずだったんだけど...

投稿者 shingo : 2005年03月14日 16:47

Very good site, pleased me

投稿者 syncPycle : 2008年11月19日 09:27

コメントしてください

コメントスパム等の対策のために,大量のURLを含むコメント,古いエントリーに対するコメント,連続したコメントなどは,一旦保留されます.




保存しますか?