• 3.1
  • 3.2
  • 5.0
  • Версия документации: 6.1

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

18 августа 2015 г.

В Django 1.8.4 исправлена ​​проблема безопасности и несколько ошибок в версии 1.8.3.

Возможность отказа в обслуживании в представлении logout() путем заполнения хранилища сеансов

Раньше сеанс можно было создать при анонимном доступе к представлению django.contrib.auth.views.logout() (при условии, что оно не было украшено login_required(), как это делается в администраторе). Это может позволить злоумышленнику легко создавать множество новых записей сеансов, отправляя повторяющиеся запросы, потенциально заполняя хранилище сеансов или вызывая удаление записей сеансов других пользователей.

SessionMiddleware был изменен, чтобы больше не создавать пустые записи сеанса, в том числе, когда SESSION_SAVE_EVERY_REQUEST активен.

Исправления

  • Добавлена ​​возможность сериализации значений из недавно добавленного UUIDField (#25019).

  • Добавлено предупреждение проверки системы, если старые настройки TEMPLATE_* определены в дополнение к новой настройке TEMPLATES.

  • Исправлен QuerySet.raw(), поэтому InvalidQuery не вызывается при использовании имени db_column поля ForeignKey с primary_key=True (#12768).

  • Предотвращено исключение в TestCase.setUpTestData() из-за утечки транзакции (#25176).

  • Исправлен метод has_changed() в contrib.postgres.forms.HStoreField (#25215, #25233).

  • Исправлена ​​запись сжатых миграций при запуске команды migrate (#25231).

  • Перемещена проверка потери данных назначения несохраненного экземпляра модели <unsaved-model-instance-check-18>` в Model.save(), чтобы упростить использование моделей в памяти (#25160).

  • Предотвращены индексы varchar_patterns_ops и text_patterns_ops для ArrayField (:ticket:25180).

Back to Top