Django 1.5.2 release notes

13 augusti 2013

Detta är Django 1.5.2, en buggfix- och säkerhetsrelease för Django 1.5.

Mildrad möjlig XSS-attack via användartillhandahållna omdirigeringsadresser

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()) kontrollerade inte om schemat är http(s) och som sådan tillät javascript:... URL:er att anges. Om en utvecklare förlitade sig på is_safe_url() för att tillhandahålla säkra omdirigeringsmål och lade in en sådan URL i en länk, kunde de drabbas av en XSS-attack. Denna bugg påverkar inte Django för närvarande, eftersom vi bara lägger in denna URL i svarshuvudet Location och webbläsare verkar ignorera JavaScript där.

XSS-sårbarhet i django.contrib.admin

Om en URLField används i Django 1.5, visar den det aktuella värdet för fältet och en länk till målet på adminändringssidan. Visningsrutinen för denna widget var bristfällig och möjliggjorde XSS.

Buggrättningar

  • Fixade en krasch med prefetch_related() (#19607) samt några pickle regressioner med prefetch_related (#20157 och #20257).

  • Åtgärdat en regression i django.contrib.gis i Google Map-utdata på Python 3 (#20773).

  • Gjorde så att DjangoTestSuiteRunner.setup_databases korrekt hanterar alias för standarddatabasen (#19940) och förhindrade teardown_databases från att försöka riva ner alias (#20681).

  • Fixade django.core.cache.backends.memcached.MemcachedCache backend get_many() metod på Python 3 (#20722).

  • Åtgärdat django.contrib.humanize syntaxfel i översättningen. Berörda språk: Mexikansk spanska, mongoliska, rumänska, turkiska (#20695).

  • Stöd för hjulpaket har lagts till (#19252).

  • CSRF-token roterar nu när en användare loggar in.

  • Några Python 3-kompatibilitetsfixar inklusive #20212 och #20025.

  • Åtgärdat några sällsynta fall där get() undantag återkom oändligt (#20278).

  • makemessages kraschar inte längre med UnicodeDecodeError (#20354).

  • Fixad geojson-detektering med SpatiaLite.

  • assertContains() fungerar återigen med binärt innehåll (#20237).

  • Fixat ManyToManyField om den har en Unicode name parameter (#20207).

  • Säkerställde att WSGI-begärans sökväg är korrekt baserad på miljövariabeln SCRIPT_NAME eller inställningen FORCE_SCRIPT_NAME, oavsett om någon av dem har ett efterföljande snedstreck eller inte (#20169).

  • Fixade en obskyr bugg med override_settings() dekoratorn. Om du får ett AttributeError: 'Settings' object has no attribute '_original_allowed_hosts' undantag, är det förmodligen åtgärdat (#20636).