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