Примечания к выпуску 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