はじめに - HTTP TRACEメソッドによる影響
って、次のurlが分かりやすいです。
http://d.hatena.ne.jp/masudaK/20110225/1298636093
「実はそんなに怖くないTRACEメソッド 」とおっしゃっる方もいますが、私の場合、念の為、TRACEメソッドは禁止する派です。
http://blog.tokumaru.org/2013/01/TRACE-method-is-not-so-dangerous-in-fact.html
2.2系なら、デフォルトOFFでしょ
と思い、telnetコマンドで確認したら、なんと有効でした。
$ telnet localhost 8081 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. OPTIONS / HTTP/1.0 HTTP/1.1 200 OK Date: Wed, 27 Nov 2013 01:56:24 GMT Server: Apache/2.2.22 (Unix) mod_perl/2.0.5 Perl/v5.10.1 Allow: GET,HEAD,POST,OPTIONS,TRACE ★ココ Content-Length: 0 Connection: close Content-Type: text/html Connection closed by foreign host.
手元にあるapacheはver.2.2.22 で、これをport:8081で動かしています。
httpd.confを編集して、HTTP TRACEメソッドを無効化
httpd.confに次の1行を追加し、apacheを再起動するだけでOK
TraceEnable Off
で、次のように無効化できました。
$ telnet localhost 8081 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. OPTIONS / HTTP/1.0 HTTP/1.1 200 OK Date: Wed, 27 Nov 2013 01:58:05 GMT Server: Apache/2.2.22 (Unix) mod_perl/2.0.5 Perl/v5.10.1 Allow: GET,HEAD,POST,OPTIONS ★ココ Content-Length: 0 Connection: close Content-Type: text/html Connection closed by foreign host.
古いapacheでは、mod_rewriteを使って無効化するようですが、古いapacheであれば、他のセキュリティホールが残っているかと思うので、最新verにした方がよいかと