Примечания к выпуску Django 1.9.11

1 ноября 2016 г.

Django 1.9.11 исправляет две проблемы безопасности в 1.9.10.

Пользователь с жестко заданным паролем, созданным при запуске тестов в Oracle

При запуске тестов с базой данных Oracle Django создает временного пользователя базы данных. В более старых версиях, если пароль не указан вручную в TESTсловаре параметров базы данных , используется жестко запрограммированный пароль. Это может позволить злоумышленнику с сетевым доступом к серверу базы данных подключиться.

Этот пользователь обычно удаляется после завершения набора тестов, но не при использовании этой опции или если у пользователя есть активный сеанс (например, соединение злоумышленника).manage.py test --keepdb

Теперь для каждого тестового запуска используется случайно сгенерированный пароль.

Уязвимость перепривязки DNS при DEBUG=True

Старые версии Django не проверяют Hostзаголовок на предмет того, settings.ALLOWED_HOSTSкогда settings.DEBUG=True. Это делает их уязвимыми для атаки повторного связывания DNS .

Хотя Django не поставляет модуль, который позволяет удаленное выполнение кода, это, по крайней мере, вектор межсайтовых сценариев, что может быть довольно серьезным, если разработчики загружают копию производственной базы данных в процессе разработки или подключаются к некоторым производственным сервисам, для которых существует нет экземпляра разработки, например. Если в проекте используется такой пакет django-debug-toolbar, то злоумышленник может выполнить произвольный SQL, что может быть особенно плохо, если разработчики подключаются к базе данных с учетной записью суперпользователя.

settings.ALLOWED_HOSTSтеперь проверяется независимо от DEBUG. Для удобства, если ALLOWED_HOSTSпусто и DEBUG=True, разрешены следующие варианты localhost . Если ваш локальный файл настроек имеет ваше производственное значение, вы должны теперь опустить его, чтобы получить эти резервные значения.['localhost', '127.0.0.1', '::1']ALLOWED_HOSTS

Copyright ©2021 All rights reserved