Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Внимательный читатель наверное уже заметил уязвимость протокола, связанную с тем, что злоумышленник может перехватить заголовок, а потом просто использовать легальные значения username, realm, nonce, uri и response. Это откроет ему доступ к ресурсу и без знания пароля. На самом деле мы рассмотрели самый простой сценарий digest-авторизации и только основные параметры. Ниже мы увидим, средства, значительно снижающие возможности того, кто перехватил ваш HTTP-заголовок.
Настройка сервера
Здесь речь пойдёт об HTTP-сервере Apache. Мы постараемся ориентироваться на широкий круг читателей, многие из которых, возможно, не располагают собственным сервером (пользуются виртуальным хостингом) и не имеют возможности самостоятельно «пересобрать» серверное ПО из исходных кодов. Но совсем не затронуть этот вопрос нельзя. С него-то мы и начнём.
Сборка сервера
В Apache 1.1 впервые появился модуль digest_module. Он был предельно прост и реализовывал минимум digest-возможностей. (Именно этим модулем были сгенерированы заголовки, которые мы видели выше как пример самого простого digest-диалога.) В версии 1.3.8 был добавлен модуль mod_auth_digest со статусом «экспериментальный». В нём были продублированы функции digest_module и добавлено несколько новых возможностей. Естественно, использовать эти модули совместно нельзя, так как наборы их функций частично перекрываются. В Apache 2.0 модуля digest_module уже нет. В документации на странице, посвящённой переходу на новую версию, сказано, что теперь mod_auth_digest не является экспериментальным. Однако на странице, описывающей сам модуль, чёрным по белому написано «Status: Experimental». Во всяком случае ни в одной из известных мне версий Apache digest-авторизация не включается при сборке с «умолчательными» параметрами.
Поэтому, если вы собираете сервер самостоятельно, дайте утилите ./configure соответствующий ключ. Они различны для разных версий Apache. Например, чтобы статически вкомпиллировать модуль mod_auth_digest в Apache 2.0, необходимо дать ключ --enable-auth-digest. Подробную справку по системе сборки имеющейся у вас версии сервера можно получить, запустив ./configure с ключом --help. Как всегда, не помешает почитать INSTALL, хотя в Apache 2.0 (после перехода на autoconf) он стал весьма лаконичным.
Если вы пользуетесь уже собранным сервером, то, скорее всего, вам не придётся предпринимать никаких специальных действий. Все известные мне сборки сервера 1.3 включают модуль mod_digest, которого вам хватит (на первое время). Сборки Apache 2.0 включают mod_auth_digest. Максимум, что может потребоваться от вас – это «раскомментировать» в файле httpd.conf инструкции, подключающие соответствующий модуль. Выглядеть это будет приблизительно так:
LoadModule digest_module libexec/apache/mod_digest.so
AddModule mod_digest.c
После того как Apache научился digest-языку, можно приступить к настройке.