无法在azure webapp中托管的基于Django的网站中隐藏服务器名称

2024-10-01 00:35:56 发布

您现在位置:Python中文网/ 问答频道 /正文

基于Django的网站托管在azure webapp(python 3.8)中。作为安全措施的一部分,我试图从响应头中隐藏服务器名称。默认情况下,它是gunicorn/20.0.4。在Django应用程序中,我实现了中间件层并添加了以下代码

class testMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)
        response["Server"] = "dummyserver"
        response["X-XSS-Protection"] = 1

        return response

在本地环境中,此设置正在工作。在响应头中,服务器名为dummyserver。但一旦它部署到Azure web应用程序中,服务器名称将在响应头中显示为gunicorn/20.0.4,但奇怪的是,其他设置(如X-XSS-Protection)正在按预期工作

看起来Azure web应用程序在默认情况下会替换Django服务器名称。我们有什么办法处理这个问题吗?谢谢你的帮助

  • 更新日期:2021年1月24日

我也尝试过这个选择

How to prevent Gunicorn from returning a 'Server' http header?

但一旦部署,它并没有解决问题

添加gunicorn.SERVER\u SOFTWARE=“dummyserver”,但没有成功

import gunicorn

class testMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)
        response["Server"] = "dummyserver"
        response["X-XSS-Protection"] = 1
        gunicorn.SERVER_SOFTWARE = "dummyserver"

        return response

Tags: djangoself服务器名称应用程序getserverresponse