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 によって読み取られてしまう可能性があります。
- 「ASP.NET は Authorization フィールドが読める」へのコメント (4件)
- 前(古い): 悲哀の7月
- 次(新しい): 最少リンクプレイ断念