web-dev-qa-db-ja.com

Apache 2.0-HTTPTRACEおよびTRACKメソッドを無効にする

私はApache2.0をHTTPサーバーおよび特定目的のPerlベースのHTTPクライアントとして使用しています。これまで、httpd.confファイルで次の設定を使用してTRACEメソッドとTRACKメソッドを無効にしました。

RewriteEngineオン

RewriteCond%{REQUEST_METHOD} ^(TRACE | TRACK)

RewriteRule。*-[F]

質問

1)パフォーマンスを向上させるために、以前の構成を次のように置き換えることはできますか?

traceEnableオフ

2)「traceEnableoff」コマンドは、TRACEメソッドとTRACKメソッドの両方が無効になることを保証できますか?

3)最後に、HTTPサーバーにはPerlベースのHTTPクライアントからのみアクセスできるため、httpd.confファイルにTRACE/TRACK無効化構成を追加する必要がありますか?

3
funk
  1. ドキュメントによると http://httpd.Apache.org/docs/2.0/mod/core.html#traceenable TraceEnable Offは、HTTPTRACEメソッドのみを無効にします。 TRACKメソッドには何もしません。

  2. 1を参照してください。

  3. サーバーがパブリックである場合は、おそらくこれらのメソッドを無効にする必要があります。

さらに:あなたは妄想的であるように思われるので(これは良いのことかもしれません!)、最終リリースとしてApacheの新しいバージョンにアップグレードします2.0のバージョンが作成され、セキュリティホールを含む新しいバグは修正されません。

2
Colin 't Hart

ケースA:TRACEディレクティブ

Httpd.confファイルで「traceEnableon」コマンドを使用し、次のcurlコマンドを実行します。

SITE = http://www.server.my; curl $ SITE -X[〜#〜] trace [〜#〜]

応答は次のとおりです。

TRACE / HTTP/1.1 User-Agent: curl/7.29.0 Host: http://www.server.my Accept: */*

一方、「traceEnable off」の場合、前のcurlコマンドは次を返します。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.</p>
<hr>
<address>Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7d DAV/2 Server at http://www.server.my Port 80</address>
</body></html>

これは、TRACEenableディレクティブが無効になっていることを意味します。したがって、「traceEnableoff」コマンドは正しく機能していると思います。

ケースB:TRACKディレクティブ

Httpd.confファイルで「traceEnableon」コマンドを使用し、次のcurlコマンドを実行します。

SITE = http://www.server.my; curl $ SITE -X[〜#〜] track [〜#〜]

応答は次のとおりです。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>TRACK to / not supported.<br />
</p>
<hr>
<address>Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7d DAV/2 Server at http://www.server.my Port 80</address>
</body></html>

前のテストケースの結論は次のとおりです:501メソッドが実装されていません。 TRACEリクエストをApacheに送信すると、このメソッドが実装されていないことが返されます。だから、心配する必要はないと思います...これは次のテストケースで確認されます。

「traceEnableoff」の場合、前のTRACK要求は同じ「実装されていません」メッセージを返します。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>TRACK to / not supported.<br />
</p>
<hr>
<address>Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7d DAV/2 Server at http://www.server.my Port 80</address>
</body></html>

http://publib.boulder.ibm.com/httpserv/ihsdiag/http_trace.html によると、ApacheサーバーはTRACKメソッドをネイティブにサポートしていませんが、プラグインモジュールは次のことを行うことができます。それをサポートします。プラグインモジュールでこの機能を無効にするには、TRACEメソッドを無効にすることに加えて、Rewriteモジュールを使用してTRACKメソッドを無効にする必要がある場合があります。

ただし、TRACKプラグインをApacheにインストールしない場合、セキュリティの問題はありません。この仮定は有効ですか?

4
funk