在 Python3 中设置简单的安全 http 服务器

dom*_*_pl 6 python security httpserver python-3.x

我想设置非常简单的 http 服务器,它替换单个 html 文件中的几个关键字,并将其发送到响应中以请求客户端。Python 的http.server对我来说看起来不错,但在文档中我发现:

警告 http.server 不推荐用于生产。它只实现基本的安全检查。

并在源代码中:

安全警告:除非您在防火墙内,否则不要使用此代码——它可能会执行任意 Python 代码或外部程序。

你知道有什么方法可以创建安全的 http 服务器,哪些端口可以通过防火墙连接到互联网?

ama*_*anb 3

如果它是 Python Web 应用程序,则 Python 中的 HTTP 服务器有多个可用选项。其中安全的有 Gunicorn、Nginx WSGI、mod_wsgi。此处提供了一个列表。我将以 mod_wsgi 为例。官方文档指出有两种安装此软件包的方法,并且两种方法对于生产部署都是安全的:

根据您的要求,可以通过两种不同的方式安装该软件包。第一种是作为传统 Apache 模块安装到现有 Apache 安装中。安装 mod_wsgi 的第二种方法是使用 Python pip 命令从 PyPi 安装它。这会构建 mod_wsgi 并将其安装到您的 Python 安装或虚拟环境中。两种安装类型都适合生产部署。

根据文档,最好的选择是使用:Apache + mod_wsgi + docker。

对于 mod_wsgi,您需要配置 Apache 2.4 并且支持 Python 2 和 3。此处说明了要求。

Apache Web 服务器广泛用于生产应用程序。Apache HTTP 服务器项目是最古老且维护良好的项目之一,已有 20 年历史。你可以在这里读更多关于它的内容。至于实施安全性,您应该阅读这个答案

  • 那么在内联网中使用“http.server”会安全吗? (3认同)