# Django 5.2.8 documentation

# Django 1.6.5 versionsinformation

14 maj 2014

Django 1.6.5 åtgärdar två säkerhetsproblem och flera buggar i 1.6.4.

## Problem: 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.

## Problem: Missbildade URL:er för omdirigering från användarinmatning valideras inte 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.

## Buggrättningar

- Gjorde `year_lookup_bounds_for_datetime_field` Oracle backend-metoden Python 3-kompatibel (#22551).

- Korrigerad `pgettext_lazy`-krasch vid mottagning av bytestring-innehåll på Python 2 (#22565).

- Åtgärdat SQL som genererades vid filtrering av ett negerat `Q`-objekt som innehåller ett `F`-objekt. (#22429).

- Undvek att skriva över data som hämtats av `select_related()` i vissa fall, vilket kunde orsaka mindre prestandaförluster (#22508).