13 августа 2013
Django 1.4.6 исправляет ошибку безопасности в предыдущих релизах, а также закрывает ещё один баг.
Это шестой патч в ветке Django 1.4.
В некоторых случаях 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).
Jun 25, 2014