Примечания к выпуску Django 1.4.20¶
18 марта 2015 г.
В Django 1.4.20 исправлена одна проблема безопасности в версии 1.4.19.
Смягчение возможной XSS-атаки через пользовательское перенаправление¶
В некоторых случаях Django полагается на ввод пользователя (например, django.contrib.auth.views.login() и i18n) для перенаправления пользователя на URL-адрес «в случае успеха». Проверки безопасности для этих перенаправлений (а именно django.utils.http.is_safe_url()) принимали URL-адреса с ведущими управляющими символами и поэтому считали URL-адреса типа \x08javascript:... безопасными. В настоящее время эта проблема не затрагивает Django, поскольку мы помещаем этот URL-адрес только в заголовок ответа «Location», а браузеры, похоже, игнорируют там JavaScript. Браузеры, которые мы тестировали, также рассматривают URL-адреса с префиксом управляющих символов, таких как %08//example.com, как относительные пути, поэтому перенаправление на небезопасную цель также не является проблемой.
Однако, если разработчик полагается на is_safe_url() для обеспечения безопасных целей перенаправления и помещает такой URL-адрес в ссылку, он может пострадать от XSS-атаки, поскольку некоторые браузеры, такие как Google Chrome, игнорируют управляющие символы в начале URL-адреса в привязке href.