水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > ASP.NET は Authorization フィールドが読める

ASP.NET は Authorization フィールドが読める

2003年7月5日(土曜日)

ASP.NET は Authorization フィールドが読める

Basic 認証では HTTP 要求ヘッダの中に Authorization というフィールドが出力され、ID:パスワードを Base64 エンコードしたものが値として送出されます。このフィールドは Apache の CGI からは読むことが出来ません。これはセキュリティ的な配慮で、Authorization フィールドの値が環境変数の値として CGI に渡されると、それが外から読まれてしまう可能性があるためです。

ところが ASP.NET にはこのような制限がなく、Authorization フィールドも他のフィールドと全く同じように読めるようです。Request.Headers["Authorization"] を参照すると、何の問題もなく取得できてしまいます。自ら 401 を返して任意の ID とパスワードで認証するようなことも出来て、便利は便利です。

※ちょっと頑張れば Digest 認証も実装できそうですね。クライアント側が対応しているかどうかは謎ですが。

しかし、これはちょっと気をつけておく必要があります。ユーザが任意の ASP.NET のリソースを使用できるようなサーバで Basic 認証を使っていると、その ID とパスワードを別のユーザの ASP.NET によって読み取られてしまう可能性があります。

関連する話題: Web / セキュリティ / .NET / プログラミング

最近の日記

関わった本など