私は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無効化構成を追加する必要がありますか?
ドキュメントによると http://httpd.Apache.org/docs/2.0/mod/core.html#traceenable TraceEnable Offは、HTTPTRACEメソッドのみを無効にします。 TRACKメソッドには何もしません。
1を参照してください。
サーバーがパブリックである場合は、おそらくこれらのメソッドを無効にする必要があります。
さらに:あなたは妄想的であるように思われるので(これは良いのことかもしれません!)、最終リリースとしてApacheの新しいバージョンにアップグレードします2.0のバージョンが作成され、セキュリティホールを含む新しいバグは修正されません。
ケース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にインストールしない場合、セキュリティの問題はありません。この仮定は有効ですか?