python - 什么比 python 中的 http.server 包更安全?
问题描述
我正在使用 python 构建一个 Http 文件服务器,所以我使用 http.server python 内置包,如下所示
from http.server import HTTPServer, BaseHTTPRequestHandler
from io import BytesIO
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.end_headers()
self.wfile.write(b'Hello, world!')
def do_POST(self):
content_length = int(self.headers['Content-Length'])
body = self.rfile.read(content_length)
self.send_response(200)
self.end_headers()
response = BytesIO()
response.write(b'This is POST request. ')
response.write(b'Received: ')
response.write(body)
self.wfile.write(response.getvalue())
httpd = HTTPServer(('255.255.255.255', 8000), SimpleHTTPRequestHandler)
httpd.serve_forever()
所以我读过这个包不推荐用于生产。它只实现基本的安全检查。有什么替代方法或更好的方法吗?
解决方案
Python 库并非旨在提供高性能和高度安全的 http 服务器。它只是允许简单快速地构建一个满足您功能需求的可接受的http 服务器。如果您想在生产中使用它,只需将其隐藏在 Apache 或 nginx 反向代理后面。这样,只有安全代理才会暴露在互联网上。
这就是专业级 Tomcat 应用服务器通常做的事情。
推荐阅读
- c# - 在 WPF 模型中发现用户偏好和更改的最佳方式
- python - Django rest_framework:如何将附加属性传递给异常/错误响应?
- ruby - 如何在 victor 中生成混合大小写的 SVG 元素,例如 flowRegion
- c# - 如果后台线程中存在未处理的异常,如何使主进程崩溃
- r - bnlearn::bn.fit 方法“mle”和“bayes”的差异和计算
- javascript - 在下载之前捕获 Highcharts 客户端导出响应
- javascript - iDangerous Swiper 的连续/恒定自动播放速度
- c++ - 获取pugixml中随机参数的值
- ios - 用于在 Twilio 聊天中键入指示器的委托方法未被调用
- javascript - 分页信息和总记录