Django 1.8.2 release notes¶
20 maj 2015
Django 1.8.2 åtgärdar ett säkerhetsproblem och flera buggar i 1.8.1.
Fixad sessionsspolning i backend cached_db
¶
En ändring av session.flush()
i cached_db
session backend i Django 1.8 sätter felaktigt sessionsnyckeln till en tom sträng istället för None
. En tom sträng behandlas som en giltig sessionsnyckel och sessionskakan ställs in i enlighet med detta. Alla användare med en tom sträng i sin sessionskaka kommer att använda samma sessionslager. `session.flush()
anropas av django.contrib.auth.logout()
och, mer allvarligt, av django.contrib.auth.login()
när en användare byter konto. Om en användare är inloggad och loggar in igen på ett annat konto (utan att logga ut) spolas sessionen för att undvika återanvändning. När sessionen har spolats (och dess sessionsnyckel blir ''
) ställs kontouppgifterna in på sessionen och sessionen sparas. Alla användare som har en tom sträng i sin sessionskaka kommer nu att vara inloggade på det kontot.
Buggrättningar¶
Fixad kontroll för unika alias i mallmotorer (#24685).
Korrigerad krasch vid återanvändning av samma
Case
-instans i en fråga (#24752).Korrigerad join-marknadsföring för
Case
-uttryck. Om man till exempel annoterar en fråga med ettCase
-uttryck kan man oväntat filtrera bort resultat (#24766).Fixat negerade
Q
-objekt i uttryck. Fall somCase(When(~Q(friends__age__lte=30)))
försökte generera en subquery vilket resulterade i en krasch (#24705).Åtgärdat felaktig generering av GROUP BY-klausuler på MySQL när frågans modell har en självrefererande främmande nyckel (#24748).
Implementerade
ForeignKey.get_db_prep_value()
så attForeignKey
som pekar påUUIDField
och arv på modeller medUUIDField
primärnycklar fungerar korrekt (#24698, #24712).Fixad
isnull
lookup förHStoreField
(#24751).Fixade en MySQL-krasch när en migrering tar bort ett kombinerat index (
unique_together
ellerindex_together
) som innehåller en främmande nyckel (#24757).Felaktig radering av sessionscookies vid användning av
SESSION_COOKIE_DOMAIN
(#24799).På PostgreSQL, när ingen åtkomst beviljas för databasen
postgres
, faller Django nu tillbaka till standarddatabasen när den normalt kräver en ”ingen databas” -anslutning (#24791).Fixad visning av
contrib.admin
’sForeignKey
widget när den används i en rad med andra fält (#24784).