3

Я использую Apache 2.0 в качестве HTTP-сервера и специальных HTTP-клиентов на основе Perl. До сих пор я отключал методы TRACE и TRACK, используя следующую конфигурацию в файле httpd.conf:

ПереписатьEngine на

RewriteCond% {REQUEST_METHOD} ^(TRACE | TRACK)

RewriteRule.* - [F]

Вопросы

1) Чтобы повысить производительность, могу ли я заменить предыдущую конфигурацию следующей?

traceEnable off

2) Может ли команда traceEnable off гарантировать, что методы TRACE и TRACK будут отключены?

3) Наконец, нужно ли добавить конфигурацию отключения TRACE/TRACK в файл httpd.conf, поскольку доступ к HTTP-серверу могут получить только HTTP-клиенты на основе Perl?

2 ответа2

4

Случай A: директива TRACE

Используя команду "traceEnable on" в файле httpd.conf и выполнив следующую команду curl:

САЙТ = 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>

Это означает, что директива включения TRACE отключена. Итак, я думаю, что команда "traceEnable off" работает правильно.

Случай B: директива TRACK

Используя команду "traceEnable on" в файле httpd.conf и выполнив следующую команду curl:

САЙТ = 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, он вернет, что этот метод не реализован. Итак, я думаю, что нам не нужно беспокоиться ... Это подтверждается следующим контрольным примером.

Если "traceEnable off", то предыдущий запрос 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 нам, возможно, придется отключить метод TRACK с помощью модуля Rewrite.

Но если вы не установите плагин TRACK в Apache, проблем с безопасностью нет. Это предположение верно?

2
  1. Согласно документации http://httpd.apache.org/docs/2.0/mod/core.html#traceenable TraceEnable Off отключит только метод HTTP TRACE. Это ничего не делает с методом TRACK.

  2. Смотрите 1.

  3. Если ваш сервер общедоступен, то вам, вероятно, следует отключить эти методы.

Кроме того: так как вы, кажется, параноик (что может быть хорошо !), Я бы обновился до более поздней версии Apache, так как был выпущен финальный выпуск 2.0, и никаких новых ошибок, включая дыры в безопасности, не будет исправлено.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .