• 3.1
  • 3.2
  • 6.1
  • Версия документации: 5.0

Релиз Django 1.4.2

17 октября 2012

Это второй релиз безопасности в ветке Django 1.4.

Опасный заголовок Host

Некоторые части Django – вне зависимости от приложений – используют полный URL, включая доменное имя, которое генерируется из заголовка Host HTTP запроса. Некоторые атаки против этого находятся вне возможностей Django и требуют правильной настройки web-сервера, которые описаны в документации.

Однако встроенный в Django анализ заголовка Host по-прежнему уязвим, о чем нам недавно сообщалось. Анализ заголовка Host в Django 1.3.3 и Django 1.4.1, в частности, django.http.HttpRequest.get_host(), неправильно обрабатывал информацию об имени пользователя и пароле в заголовке. Так, например, следующий заголовок Host будет принят Django при запуске на validsite.com:

Host: validsite.com:random@evilsite.com

Пользуясь этим, злоумышленник может вызвать методы Django – в частности восстановление пароля - для создания и отображения произвольных URL-адреса для пользователей.

Чтобы исключить такую возможность, был изменён HttpRequest.get_host(). Теперь при разборе заголовка Host, который содержит потенциально опасный контент (например, имя пользователя или пароль) будет вызывать исключение django.core.exceptions.SuspiciousOperation.

Полный список исправленных ошибок можно найти на security advisory.

Нарушение обратной совместимости

  • Новые аргументы для конструктора GenericIPAddressField адаптированы таким образом, чтобы совпадали с остальными полями модели. Теперь два первых аргумента verbose_name и name.

Остальные исправления и изменения

  • Подкласс HTMLParser использует соответствующую версию Python (#18239).

  • Добавлен аргумент batch_size в qs.bulk_create() (#17788).

  • Исправлена небольшая регрессия в фильтрах админки, когда неправильно форматированная дата, которая передавалась как параметр, вызывала необработанное исключение ValidationError (#18530).

  • Исправлен бесконечный цикл при запросе доступа в шаблоне (#18979)

  • Исправлена совместимость с Python 2.5

  • Исправлена ошибка с экранированием имён файлов в заголовке Content-Disposition (#19006).

  • Контекстные опции для тегов trans и blocktrans теперь принимают строки в одинарных кавычках (#18881).

  • Многочисленные улучшения и исправления документации.

Back to Top