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

18 декабря 2019 г.,

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

CVE-2019-19844: потенциальный взлом аккаунта с помощью формы для сброса пароля

Отправив для сравнения надлежащим образом созданный адрес электронной почты с использованием символов Unicode, который сравнивается с существующим адресом электронной почты пользователя в нижнем регистре для сравнения, злоумышленнику может быть отправлен токен сброса пароля для соответствующей учетной записи.

Чтобы избежать этой уязвимости, запросы на сброс пароля теперь сравнивают отправленное электронное письмо с использованием более строгого рекомендованного алгоритма без учета регистра двух идентификаторов из Технического отчета Unicode 36, раздел 2.11.2 (B) (2) . После совпадения электронное письмо, содержащее токен сброса, будет отправлено на указанный адрес электронной почты, а не на указанный адрес.

Исправления

  • Исправлена ​​регрессия в Django 3.0 за счет восстановления возможности использования Django внутри Jupyter и других сред, которые принудительно используют асинхронный контекст, путем добавления опции отключения механизма безопасности Async с помощью DJANGO_ALLOW_ASYNC_UNSAFE переменная окружения ( # 31056 ).
  • Исправлена ​​регрессия в Django 3.0, когда RegexPattern использовались re_path() возвращаемые позиционные аргументы для передачи в представление, когда все необязательные именованные группы отсутствовали ( # 31061 ).
  • Реализованы, после регрессии в Django 3.0, Window выражения, которые будут использоваться в условиях вне фильтров набора запросов , например, в When условиях ( # 31060 ).
  • Исправлена ​​возможность потери данных в SplitArrayField . При использовании with ArrayField(BooleanField()) все значения после первого True значения были отмечены как проверенные вместо сохранения переданных значений ( # 31073 ).

Copyright ©2020 All rights reserved