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

О релизе Django 1.3.4

17 октября 2012

Это четвёртый релиз в ветке Django 1.3.

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

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

Django’s own built-in parsing of the Host header is, however, still vulnerable, as was reported to us recently. The Host header parsing in Django 1.3.3 and Django 1.4.1 – specifically, django.http.HttpRequest.get_host() – was incorrectly handling username/password information in the header. Thus, for example, the following Host header would be accepted by Django when running on «validsite.com»:

Host: validsite.com:random@evilsite.com

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

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

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

Back to Top