ApacheのTRACEメソッド対策










Apacheの話
Apache 1.3.34, 2.0.55くらいから、TRACEメソッドに対する設定が追加されています
TraceEnable タグがありますが、別段気にせず使っていたので
いまさら、改まって、確認してみた
Apache#traceenable

TraceEnable Off にし
# vi /etc/httpd/conf/httpd.conf

TraceEnable Off

telnetで確認してみると
# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
TRACE / HTTP/1.1
HOST: localhost

HTTP/1.1 405 Method Not Allowed
Date: Sat, 01 Feb 2014 16:15:58 GMT
Server: Apache/2.2.15 (CentOS)
Allow:
Content-Length: 298
Connection: close
Content-Type: text/html; charset=iso-8859-1

405が返ってくる


今までは、リダイレクト等で対処していた方が多いと思います また、TraceEnableタグを利用するようになってからも習慣的に設定していました。
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|OPTIONS)
RewriteRule .* - [F]


その場合、両方の設定を行うと、リダイレクトが処理しクライアントに応答します
# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
TRACE / HTTP/1.1
HOAT: localhost

HTTP/1.1 400 Bad Request
Date: Sat, 01 Feb 2014 16:17:21 GMT
Server: Apache/2.2.15 (CentOS)
Content-Length: 303
Connection: close
Content-Type: text/html; charset=iso-8859-1

400で返ってきた
気分的には400応答のほうがよさそうな気がするが
ここはHTTPのプロトコルルールにのっとって
HTTP-Studing
TraceEnableタグが応答を返すよう
リダイレクト設定からは除外しておく。


サーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus)
鶴長 鎮一
技術評論社
売り上げランキング: 30,984

0 コメント:

コメントを投稿