Примечания к выпуску 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 assignment data loss check в Model.save(), чтобы облегчить использование моделей in-memory (#25160).
  • Предотвращены индексы varchar_patterns_ops и text_patterns_ops для ArrayField (#25180).
Вернуться на верх