Django 1.4.2 release notes¶
17 oktober 2012
Detta är den andra säkerhetsreleasen i Django 1.4-serien.
Förgiftning av värdhuvud¶
Vissa delar av Django - oberoende av slutanvändarskrivna applikationer - använder sig av fullständiga webbadresser, inklusive domännamn, som genereras från HTTP Host-headern. Vissa attacker mot detta är bortom Djangos förmåga att kontrollera och kräver att webbservern är korrekt konfigurerad; Djangos dokumentation har under en tid innehållit anteckningar som ger användarna råd om sådan konfiguration.
Djangos egen inbyggda parsning av Host-headern är dock fortfarande sårbar, vilket rapporterades till oss nyligen. Host-header-parsningen i Django 1.3.3 och Django 1.4.1 - specifikt django.http.HttpRequest.get_host()
- hanterade felaktigt information om användarnamn/lösenord i headern. Således skulle till exempel följande Host-header accepteras av Django när det körs på validsite.com
:
Host: validsite.com:random@evilsite.com
Med hjälp av detta kan en angripare få delar av Django - särskilt mekanismen för återställning av lösenord - att generera och visa godtyckliga webbadresser för användare.
För att åtgärda detta har parsningen i HttpRequest.get_host()
ändrats; Host-rubriker som innehåller potentiellt farligt innehåll (t.ex. par av användarnamn/lösenord) ger nu upphov till undantaget django.core.exceptions.SuspiciousOperation
.
Detaljer om detta problem publicerades ursprungligen online som en ”säkerhetsrådgivning”.
Bakåtkompatibla förändringar¶
De nyligen introducerade
GenericIPAddressField
-konstruktörsargumenten har anpassats för att matcha dem för alla andra modellfält. De två första nyckelordsargumenten är nu verbose_name och name.
Andra buggfixar och ändringar¶
Underklass HTMLParser endast för lämpliga Python-versioner (#18239).
Lagt till batch_size-argument till qs.bulk_create() (#17788).
Åtgärdade en liten regression i adminfiltren där felaktigt formaterade datum som skickades som url-parametrar orsakade ett ohanterat ValidationError (#18530).
Åtgärdat ett fel med en oändlig loop vid åtkomst till behörigheter i mallar (#18979)
Åtgärdat vissa kompatibilitetsproblem med Python 2.5
Åtgärdat ett problem med citerade filnamn i Content-Disposition-huvudet (#19006)
Kontextalternativet i taggarna
trans
ochblocktrans
accepterade bokstavstecken med enkla citattecken (#18881).Många förbättringar och korrigeringar av dokumentationen.