Настройка простого БЕЗОПАСНОГО http-сервера в Python3 - PullRequest
0 голосов
/ 11 января 2019

Я хочу установить очень простой http-сервер, который заменяет несколько ключевых слов в одном html-файле и отправляет его в repspond для запроса клиентам. Python http.server выглядит хорошо для меня, но в документации я нашел:

Предупреждение http.server не рекомендуется для производства. Он реализует только базовые проверки безопасности.

и в исходном коде:

ПРЕДУПРЕЖДЕНИЕ О БЕЗОПАСНОСТИ: НЕ ИСПОЛЬЗУЙТЕ ЭТОТ КОДЕКС, ЕСЛИ ВЫ ВНУТРИ ФАЙРУ - он может выполнять произвольный код Python или внешние программы.

Знаете ли вы, как создать безопасный http-сервер, какие порты могут быть предисловием через брандмауэр к Интернету?

1 Ответ

0 голосов
/ 11 января 2019

Если это веб-приложение Python, в Python есть несколько опций для HTTP-серверов. Среди безопасных - Gunicorn, Nginx WSGI, mod_wsgi. Список доступен здесь . Я возьму mod_wsgi в качестве примера. Официальная документация гласит, что существует два способа установки этого пакета, и оба безопасны для рабочих развертываний:

Пакет может быть установлен двумя различными способами в зависимости от ваших требований. Первый - это традиционный модуль Apache, установленный в существующую установку Apache. Второй способ установки mod_wsgi - установить его из PyPi с помощью команды Python pip. Это создает и устанавливает mod_wsgi в вашу установку Python или виртуальную среду. Оба типа установки подходят для производственных развертываний.

Согласно документации, лучшим вариантом является использование: Apache + mod_wsgi + docker.

Для mod_wsgi вам потребуется настроить Apache 2.4, и поддерживаются оба Python 2 и 3. Требования изложены здесь .

Веб-сервер Apache широко используется в производственных приложениях. Проект Apache HTTP Server является одним из старейших и поддерживается в течение 20 лет. Вы можете прочитать больше об этом здесь . Что касается обеспечения безопасности, вы должны прочитать этот ответ .

...