CherryPy: удалить версию из заголовка и страницы ошибок - PullRequest
0 голосов
/ 01 марта 2019

Чтобы предотвратить раскрытие версии , я бы хотел, чтобы CherryPy не раскрывала свою версию.Это раскрывается на странице ошибок и в заголовке сервера.Как это можно отключить?

Ответы [ 2 ]

0 голосов
/ 17 марта 2019

Добавление к ответу Люка;

В вашей конфигурации вы должны изменить свой 'response.headers.server' на '' или что-то другое, чтобы скрыть версию в заголовках браузера.

Вы также можете отредактировать код шаблона, чтобы удалить Powered By.Например, это заменит его на ''.

    cherrypy.__version__ = ''
    cherrypy._cperror._HTTPErrorTemplate = cherrypy._cperror._HTTPErrorTemplate.replace('Powered by <a href="http://www.cherrypy.org">CherryPy %(version)s</a>\n','%(version)s')
0 голосов
/ 01 марта 2019

Это не поддерживается CherryPy, но мы можем справиться сами!

Шаблон страницы ошибки жестко задан в _cperror.py, и удаление номера версии из шаблона будет возможно только через пользовательскийстраница ошибки.Однако мы можем переопределить переменную, из которой читается номер версии:

cherrypy.__version__ = ''

Глядя на использование переменной, мы видим, что это повлияет как на страницы ошибок, так и на заголовок HTTP:

/usr/local/lib/python3.6/dist-packages/cherrypy$ grep cherrypy.__version__ *.py
_cperror.py:         kwargs['version'] = cherrypy.__version__
_cprequest.py:       'Server': 'CherryPy/' + cherrypy.__version__,

В заголовке HTTP Server все еще будет упоминаться CherryPy.Это можно переопределить, как указано Baxter , установив переменную конфигурации response.headers.server:

cherrypy.config.update({
    'response.headers.server': '',
    })

На ваших страницах ошибок все равно будет отображаться сообщение «Powered by CherryPy», но по крайней мере нетбудет указан номер версии.

Обратите внимание, что оба фрагмента кода должны быть указаны перед запуском сервера (т. е. перед вызовом cherrypy.quickstart(...)).

...