Примечания к выпуску Django 1.10.3 ¶
1 ноября 2016 г.
Django 1.10.3 исправляет две проблемы безопасности и несколько ошибок в 1.10.2.
Пользователь с жестко заданным паролем, созданным при запуске тестов в 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
Исправления ¶
- Разрешены
User.is_authenticated
иUser.is_anonymous
свойства для проверки наset
членство ( # 27309 ). - Исправлено снижение производительности при запуске
migrate
в проектах сRenameModel
операциями ( # 27279 ). - Добавил
model_name
вallow_migrate()
звонки вmakemigrations
( # 27200 ). - Заставил
JavaScriptCatalog
мнение уважатьpackages
аргумент; ранее он игнорировался ( # 27374 ). - Исправлено
QuerySet.bulk_create()
в PostgreSQL, когда количество объектов кратно плюс одномуbatch_size
( # 27385 ). - Предотвращено
i18n_patterns()
использование слишком большого количества URL в качестве языка для исправления варианта использованияprefix_default_language=False
( # 27063 ). - Заменено возможно неправильное перенаправление с
SessionMiddleware
момента разрушения сеанса в параллельном запросе на,SuspiciousOperation
чтобы указать, что запрос не может быть завершен ( # 27363 ).