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

Copyright ©2020 All rights reserved