Подтвердить что ты не робот

Как запретить Gunicorn возвращать HTTP-заголовок сервера?

Я хотел бы замаскировать версию или вообще удалить заголовок.

4b9b3361

Ответ 1

Чтобы изменить http-заголовок сервера: http в файле conf.py:

 import gunicorn
 gunicorn.SERVER_SOFTWARE = 'Microsoft-IIS/6.0'

И используйте вызов по строкам gunicorn -c conf.py wsgi:app

Чтобы удалить заголовок в целом, вы можете использовать gunicorn для обезьян-патча, заменив его класс ответа HTTP на подкласс, который отфильтровывает заголовок. Это может быть безвредным, но, вероятно, не рекомендуется. В conf.py введите следующее:

from gunicorn.http import wsgi

class Response(wsgi.Response):
    def default_headers(self, *args, **kwargs):
        headers = super(Response, self).default_headers(*args, **kwargs)
        return [h for h in headers if not h.startswith('Server:')]

wsgi.Response = Response

Протестировано с пулеметами 18

Ответ 2

Вы можете отредактировать __init__.py, чтобы установить SERVER_SOFTWARE в любое удобное для вас время. Но мне бы очень хотелось отключить это с помощью флага, поэтому мне не нужно было повторно использовать патч при обновлении.

Ответ 3

Мое бесплатное решение, включающее использование метода default_headers:

import gunicorn.http.wsgi
from six import wraps


def wrap_default_headers(func):
    @wraps(func)
    def default_headers(*args, **kwargs):
        return [header for header in func(*args, **kwargs) if not header.startswith('Server: ')]
    return default_headers


gunicorn.http.wsgi.Response.default_headers = wrap_default_headers(gunicorn.http.wsgi.Response.default_headers)

Ответ 4

Лучше изменить его на что-то уникальное, чем удалить его. Вы не хотите рисковать, например, пауки думают, что вы не соблюдаете требования. Изменение его на название программного обеспечения, которое вы не используете, может вызвать аналогичные проблемы. Сделав его уникальным, вы предотвратите подобные предположения. Я рекомендую что-то вроде этого:

import gunicorn
gunicorn.SERVER_SOFTWARE = 'intentionally-undisclosed-gensym384763'