Django 1.1.3 release notes¶
Välkommen till Django 1.1.3!
Detta är den tredje ”bugfix”-releasen i Django 1.1-serien, som förbättrar stabiliteten och prestandan i Django 1.1-kodbasen.
Med ett undantag är Django 1.1.3 bakåtkompatibel med Django 1.1.2. Den innehåller också ett antal korrigeringar och andra förbättringar. Django 1.1.2 är en rekommenderad uppgradering för all utveckling eller distribution som för närvarande använder eller riktar in sig på Django 1.1.
För fullständig information om nya funktioner, inkompatibilitet bakåt och utdaterade funktioner i 1.1-grenen, se Django 1.1 release notes.
Bakåtkompatibla förändringar¶
Begränsade filter i administratörsgränssnittet¶
Djangos administrativa gränssnitt, django.contrib.admin
, stöder filtrering av visade listor över objekt efter fält i motsvarande modeller, inklusive relationer på databasnivå. Detta implementeras genom att skicka uppslagsargument i URL-adressens frågestring, och alternativ på ModelAdmin-klassen gör det möjligt för utvecklare att ange särskilda fält eller relationer som kommer att generera automatiska länkar för filtrering.
En historiskt odokumenterad och inofficiellt stödd funktion har varit möjligheten för en användare med tillräcklig kunskap om en modells struktur och formatet på dessa uppslagsargument att uppfinna användbara nya filter i farten genom att manipulera frågesträngen.
Det har dock visat sig att detta kan missbrukas för att få tillgång till information som ligger utanför en administratörsanvändares behörigheter; till exempel kan en angripare med tillgång till administratören och tillräcklig kunskap om modellstruktur och relationer konstruera frågesträngar som - med upprepad användning av reguljära uttryckssökningar som stöds av Djangos databas-API - avslöjar känslig information som användarnas lösenordshashar.
För att åtgärda detta kommer django.contrib.admin
nu att validera att argument för uppslagsord i frågeord antingen endast anger fält i den modell som visas eller korsar relationer som uttryckligen har tillåtits av programutvecklaren med hjälp av den befintliga mekanismen som nämns ovan. Detta är bakåtkompatibelt för alla användare som förlitar sig på den tidigare möjligheten att infoga godtyckliga uppslagningar.