Примечания к выпуску Django 1.4.6¶
13 августа 2013
Django 1.4.6 исправляет одну проблему безопасности, присутствовавшую в предыдущих выпусках Django серии 1.4, а также еще одну ошибку.
Это шестой выпуск исправлений/безопасности в серии Django 1.4.
Устранена возможная XSS-атака через URL-адреса перенаправления, заданные пользователем¶
Django полагается на ввод пользователя в некоторых случаях (например, django.contrib.auth.views.login()
, django.contrib.comments
и i18n), чтобы перенаправить пользователя на URL «при успехе». Проверки безопасности для этих перенаправлений (а именно django.utils.http.is_safe_url()
) не проверяли, является ли схема http(s)
и, как таковые, позволяли вводить URL javascript:...
. Если разработчик полагался на is_safe_url()
для обеспечения безопасных целей перенаправления и помещал такой URL в ссылку, он мог пострадать от XSS-атаки. В настоящее время эта ошибка не влияет на Django, поскольку мы помещаем этот URL только в заголовок ответа Location
, а браузеры, похоже, игнорируют JavaScript.
Исправления¶
- Исправлена неясная ошибка с декоратором
override_settings()
. Если вы столкнулись с исключениемAttributeError: 'Settings' object has no attribute '_original_allowed_hosts'
, это, вероятно, исправлено (#20636).