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

1 февраля 2018 г.

Django 1.11.10 исправляет проблему безопасности и несколько ошибок в 1.11.9.

CVE-2018-6188: утечка информации в AuthenticationForm

В результате регресса в Django 1.11.8 AuthenticationForm его confirm_login_allowed() метод запускался даже при вводе неверного пароля. Это может привести к утечке информации о пользователе, в зависимости от того, какие сообщения confirm_login_allowed() возникают. Если confirm_login_allowed() не отменено, злоумышленник вводит произвольное имя пользователя и проверяет, установлен ли этот пользователь на is_active=False . В случае confirm_login_allowed() переопределения может произойти утечка более важных деталей.

Эта проблема устранена с предупреждением, что AuthenticationForm больше не может появляться сообщение «Эта учетная запись неактивна. »Ошибка, если бэкэнд аутентификации отклоняет неактивных пользователей (бэкэнд аутентификации по умолчанию ModelBackend делал это с Django 1.10). Эта проблема будет повторно рассмотрена для Django 2.1, поскольку исправление для устранения этой оговорки, вероятно, будет слишком агрессивным для включения в более старые версии.

Исправления ошибок

  • Исправлено некорректное обнуление внешнего ключа, если модель имеет два внешних ключа для одной и той же модели, а целевая модель удалена ( # 29016 ).
  • Исправлена ​​регрессия, при которой происходит contrib.auth.authenticate() сбой, если серверная часть аутентификации не принимает, request а более поздняя - принимает ( # 29071 ).
  • Исправлен сбой при вводе недопустимого uuid в ModelAdmin.raw_id_fields ( # 29094 ).

Copyright ©2020 All rights reserved