Django 1.4.13 release notes¶
14 maj 2014
Django 1.4.13 åtgärdar två säkerhetsproblem i 1.4.12.
Cacher kan felaktigt tillåtas lagra och tillhandahålla privata data¶
I vissa situationer kan Django tillåta att cacher lagrar privata data som är relaterade till en viss session och sedan serverar dessa data till förfrågningar med en annan session, eller ingen session alls. Detta kan leda till att information avslöjas och kan vara en vektor för cacheförgiftning.
När du använder Django-sessioner kommer Django att ställa in en Vary: Cookie
för att säkerställa att cacheminnet inte serverar cachad data till förfrågningar från andra sessioner. Äldre versioner av Internet Explorer (troligen endast Internet Explorer 6 och Internet Explorer 7 om de körs på Windows XP eller Windows Server 2003) kan dock inte hantera Vary
-headern i kombination med många innehållstyper. Därför skulle Django ta bort rubriken om begäran gjordes av Internet Explorer.
För att åtgärda detta har det speciella beteendet för dessa äldre Internet Explorer-versioner tagits bort, och Vary
-huvudet tas inte längre bort från svaret. Dessutom har modifieringar av Cache-Control
-huvudet för alla Internet Explorer-förfrågningar med ett Content-Disposition
-huvud också tagits bort eftersom de visade sig ha liknande problem.
Felaktiga URL:er för omdirigering från användarinmatning som inte validerats korrekt¶
Valideringen för omdirigeringar validerade inte korrekt vissa missbildade URL:er, som accepteras av vissa webbläsare. Detta gör att en användare oväntat kan omdirigeras till en osäker webbadress.
Django förlitar sig på användarinmatning i vissa fall (t.ex. django.contrib.auth.views.login()
, django.contrib.comments
, och i18n) för att omdirigera användaren till en ”on success” URL. Säkerhetskontrollerna för dessa omdirigeringar (nämligen django.utils.http.is_safe_url()
) validerade inte korrekt vissa missbildade webbadresser, till exempel http:\\\\\\djangoproject.com
, som accepteras av vissa webbläsare med mer liberal URL-parsning.
För att åtgärda detta har valideringen i is_safe_url()
skärpts för att kunna hantera och korrekt validera dessa felaktiga webbadresser.