Примечания к выпуску Django 1.7.10¶
18 августа 2015
Django 1.7.10 исправляет проблему безопасности в 1.7.9.
Возможность отказа в обслуживании в представлении logout()
путем заполнения хранилища сессий¶
Ранее сессия могла быть создана при анонимном доступе к представлению django.contrib.auth.views.logout()
(при условии, что оно не было украшено login_required()
, как это сделано в админке). Это могло позволить злоумышленнику легко создавать множество новых записей о сеансах, отправляя повторные запросы, потенциально заполняя хранилище сеансов или вызывая вытеснение записей о сеансах других пользователей.
Функция SessionMiddleware
была изменена таким образом, чтобы больше не создавать пустые записи сеанса, в том числе, когда активна функция SESSION_SAVE_EVERY_REQUEST
.
Кроме того, методы contrib.sessions.backends.base.SessionBase.flush()
и cache_db.SessionStore.flush()
были модифицированы, чтобы избежать создания новой пустой сессии. Владельцы сторонних бэкендов сессий должны проверить, присутствует ли такая же уязвимость в их бэкенде, и исправить ее, если это так.