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

时间:2019-01-11 09:14:10

标签: python python-3.x security httpserver

我想建立一个非常简单的http服务器,在单个html文件中替换几个关键字,然后以响应的形式将其发送给客户端。 Python的http.server对我来说很好,但是在文档中我发现:

  

不建议在生产中使用警告http.server。它仅实现基本的安全检查。

以及源代码中的

  

安全警告:除非您位于防火墙内,否则请勿使用此代码   -它可以执行任意的Python代码或外部程序。

您知道创建安全HTTP服务器的任何方式吗,哪些端口可以通过防火墙连接到Internet?

1 个答案:

答案 0 :(得分:1)

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

  

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

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

对于mod_wsgi,您将需要配置Apache 2.4,并且同时支持Python 2和3。规定here

Apache Web服务器广泛用于生产应用程序。 Apache HTTP Server项目是最古老的项目,并且维护了20年。您可以详细了解here。关于实现安全性,您应该阅读this answer