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

13 августа 2013 г.

Это Django 1.5.2, исправление ошибок и выпуск безопасности для Django 1.5.

Снижены возможные атаки XSS через URL-адреса перенаправления, предоставленные пользователем

В некоторых случаях Django полагается на ввод пользователя (например django.contrib.auth.views.login() , django.contrib.comments и i18n ) для перенаправления пользователя на URL-адрес «при успехе». Проверки безопасности для этих перенаправлений (а именно django.utils.http.is_safe_url() ) не проверяли http(s) , разрешена ли схема и разрешены javascript:... ли вводимые URL-адреса. Если разработчик полагался на is_safe_url() обеспечение безопасных целей перенаправления и помещал такой URL-адрес в ссылку, он мог пострадать от XSS-атаки. В настоящее время эта ошибка не влияет на Django, поскольку мы помещаем этот URL только в Location заголовок ответа, а браузеры, похоже, игнорируют там JavaScript.

XSS-уязвимость в django.contrib.admin

Если URLField в Django 1.5 используется a , он отображает текущее значение поля и ссылку на цель на странице изменения администратора. Процедура отображения этого виджета была некорректной и допускала использование XSS.

Исправления

  • Исправлен сбой с prefetch_related() (# 19607), а также некоторые pickle регрессии с prefetch_related (# 20157 и # 20257).
  • Исправлена ​​регрессия в django.contrib.gis выводе Google Map на Python 3 (# 20773).
  • Сделана DjangoTestSuiteRunner.setup_databases правильная обработка псевдонимов для базы данных по умолчанию (# 19940) и предотвращена teardown_databases попытка удаления псевдонимов (# 20681).
  • Исправлен django.core.cache.backends.memcached.MemcachedCache внутренний get_many() метод на Python 3 (# 20722).
  • Исправлены django.contrib.humanize синтаксические ошибки перевода. Затронутые языки: мексиканский испанский, монгольский, румынский, турецкий (# 20695).
  • Добавлена ​​поддержка пакетов колес (# 19252).
  • Токен CSRF теперь вращается, когда пользователь входит в систему.
  • Некоторые исправления совместимости с Python 3, включая # 20212 и # 20025.
  • Исправлены некоторые редкие случаи, когда get() исключения повторялись бесконечно (# 20278).
  • makemessages больше не вылетает с UnicodeDecodeError (# 20354).
  • Исправлено geojson обнаружение с помощью SpatiaLite.
  • assertContains() снова работает с двоичным контентом (# 20237).
  • Исправлено, ManyToManyField если у него есть name параметр Unicode (# 20207).
  • Гарантировано, что путь запроса WSGI правильно основан на SCRIPT_NAME переменной среды или FORCE_SCRIPT_NAME настройке, независимо от того, есть ли в конце косая черта (# 20169).
  • Исправлена ​​непонятная ошибка с override_settings() декоратором. Если вы обнаружите исключение, оно, вероятно, исправлено (# 20636).AttributeError: 'Settings' object has no attribute '_original_allowed_hosts'

Copyright ©2020 All rights reserved