Релиз Django 1.4.6

13 августа 2013

Django 1.4.6 исправляет ошибку безопасности в предыдущих релизах, а также закрывает ещё один баг.

Это шестой патч в ветке Django 1.4.

Смягчение возможной XSS-атаки через пользовательское перенаправление

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

Исправления

  • Исправлена непонятная ошибка в декораторе override_settings(). Если вы получали исключение AttributeError: 'Settings' object has no attribute '_original_allowed_hosts', то это ваш случай (#20636).