CGI で Authorization ヘッダが読めない理由と認証用クッキー
昔から CGI で Authorization ヘッダは読めないようになっていて、それが WSSE のような規格が使われちゃったりしちゃう原因のひとつにもなっていたりするわけですが。で、その理由は Apache の server/util_script.c あたりを見ると、以下のように書いてある。というのは知っている人は知っている話。
/* * You really don't want to disable this check, since it leaves you * wide open to CGIs stealing passwords and people viewing them * in the environment with "ps -e". But, if you must... */ #ifndef SECURITY_HOLE_PASS_AUTHORIZATION else if (!strcasecmp(hdrs[i].key, "Authorization") || !strcasecmp(hdrs[i].key, "Proxy-Authorization")) { continue; } #endif
で、気になるのは、パスワードの漏洩を防ぐために Authorization ヘッダを削除するのなら、認証データが含まれることのある Cookie ヘッダを環境変数で渡すのもマズいんじゃないの、ということ。このあたりの認識がどうなっているのか、自分にはさっぱり知識がない。どうなんでしょ。
djb 系のツールみたく、やばいヘッダ情報は file descriptor 5 番経由で渡す、とかにすれば、現行の CGI 規格を保ったまま、認証関連の情報を受け渡すこともできるんだろうけど。まあ、そんなものを必要としている人がどれだけいるのか、って話なのかなぁ。