Простой HTTP-сервер
100%

Совместное использование сети · Урок 3

Простой HTTP-сервер

Узнайте, как временно открыть контролируемый каталог с помощью HTTP-сервера Python.

Модуль Python http.server может раздавать статические файлы для кратковременного теста или доверенной передачи. Это не производственный веб-сервер: он не предоставляет аутентификацию, авторизацию, TLS, ограничение частоты запросов или усиленную обработку враждебного трафика.

Подготовка общего каталога

Создайте отдельный каталог только с теми файлами, которые предполагается открыть. Перед запуском проверьте скрытые файлы, символические ссылки, права и конфиденциальные метаданные. Не раздавайте домашний каталог, корень репозитория, каталог учётных данных или системный путь.

Сделайте общий корень явным с помощью --directory:

$ python3 -m http.server 8000 --directory /srv/temporary-share

Если индексного файла нет, модуль обычно создаёт список каталога. Любой, кто может обратиться к прослушиваемому адресу, потенциально способен перечислить и загрузить раздаваемое содержимое.

Зачем использовать --directory /srv/temporary-share?

Управление адресом прослушивания

Если подключаться должен только тот же хост, привяжите сервер к обратной петле:

$ python3 -m http.server 8000 --bind 127.0.0.1 --directory /srv/temporary-share

Для общего доступа в доверенной сети осознанно привяжитесь к подходящему адресу интерфейса и проверьте политику межсетевого экрана. Запуск без ограничивающей привязки обычно прослушивает все доступные интерфейсы, из-за чего каталог может оказаться открыт шире требуемой сети.

Кто обычно может обратиться к серверу, привязанному к 127.0.0.1?

Проверка доступа

На раздающем хосте запросите известный файл и проверьте ответ:

$ curl -f http://127.0.0.1:8000/example.txt

Для разрешённого удалённого теста используйте выбранный адрес интерфейса вместо обратной петли. Убедитесь и в доступности нужного файла, и в недоступности файла за пределами корня документов. Сам по себе успех в браузере не подтверждает правильную область раскрытия или конфиденциальность.

Какой порт явно выбран в команде python3 -m http.server 8000?

Остановка и очистка

Запускайте временную службу в контролируемом терминале и после завершения передачи остановите её сочетанием Ctrl-C. Убедитесь, что прослушивание исчезло:

$ ss -ltn 'sport = :8000'

Удалите временные копии согласно правилам обработки данных и отмените временное правило межсетевого экрана. Для постоянной, аутентифицированной или доступной из интернета раздачи используйте поддерживаемый сервер с настроенными управлением доступом и TLS.

Что следует сделать после завершения временной передачи?

Урок завершён

Вы завершили Простой HTTP-сервер

Теперь вы можете запускать временный HTTP-сервер Python с ограниченной областью раскрытия.

  • Раздавайте только отдельный проверенный каталог.

  • Привязывайтесь к наиболее узкому подходящему адресу.

  • Проверяйте требуемый доступ и нежелательные границы.

  • После работы останавливайте прослушивание и удаляйте временный доступ.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Следующий Урок
Назад к Совместное использование сети