Практическое задание

Эта задача — шаг 15 курса «Новый сервер: настройка с нуля»

Пароль на статистику продаж

средне~10 мин

Владелец магазина смотрит продажи на http://localhost/stats/, и сейчас эту страницу видит кто угодно. Закрой /stats/ HTTP basic auth: пользователь owner, пароль Sh0p-2026. Остальной сайт должен остаться публичным.

Что потренируешь:
  • nginx
  • auth_basic
  • htpasswd
  • location
  • 401

Разбор темы

HTTP Basic Auth — простейшая защита страницы: сервер отвечает 401 с заголовком WWW-Authenticate, пока клиент не пришлёт логин и пароль. nginx хранит пароли не открытым текстом, а в файле формата htpasswd — логин и хеш, которые создаёт утилита htpasswd. Защита включается точечно в нужном location директивами auth_basic и auth_basic_user_file, поэтому можно закрыть один раздел, оставив остальной сайт открытым. Basic Auth передаёт пароль лишь в base64, так что в бою его используют только поверх HTTPS.

Что проверяется

  1. /stats/ без пароля отвечает 401
  2. неверный пароль не пускает
  3. owner с верным паролем открывает /stats/
  4. главная доступна без пароля

Как это выглядит