Django 1.10.3 release notes¶
1 november 2016
Django 1.10.3 åtgärdar två säkerhetsproblem och flera buggar i 1.10.2.
Användare med hårdkodat lösenord som skapas när tester körs på Oracle¶
När tester körs med en Oracle-databas skapar Django en tillfällig databasanvändare. I äldre versioner, om ett lösenord inte anges manuellt i databasinställningarna TEST
dictionary, används ett hårdkodat lösenord. Detta kan göra det möjligt för en angripare med nätverksåtkomst till databasservern att ansluta.
Den här användaren släpps vanligtvis efter att testsviten har slutförts, men inte när alternativet manage.py test --keepdb
används eller om användaren har en aktiv session (t.ex. en angripares anslutning).
Ett slumpmässigt genererat lösenord används nu för varje testkörning.
DNS-sårbarhet för ombindning när DEBUG=True
¶
Äldre versioner av Django validerar inte Host
-headern mot settings.ALLOWED_HOSTS
när settings.DEBUG=True
. Detta gör dem sårbara för en DNS rebinding attack.
Även om Django inte levererar en modul som tillåter exekvering av fjärrkod, är detta åtminstone en cross-site scripting-vektor, vilket kan vara ganska allvarligt om utvecklare laddar en kopia av produktionsdatabasen i utveckling eller ansluter till vissa produktionstjänster för vilka det inte finns någon utvecklingsinstans, till exempel. Om ett projekt använder ett paket som django-debug-toolbar
, kan angriparen köra godtycklig SQL, vilket kan vara särskilt illa om utvecklarna ansluter till databasen med ett superanvändarkonto.
`settings.ALLOWED_HOSTS
valideras nu oberoende av DEBUG
. För enkelhetens skull, om ALLOWED_HOSTS
är tomt och DEBUG=True
, tillåts följande varianter av localhost ['localhost', '127.0.0.1', '::1']
. Om din lokala inställningsfil har ditt produktionsvärde för ALLOWED_HOSTS
måste du nu utelämna det för att få dessa reservvärden.
Buggrättningar¶
Tillåt att egenskaperna
User.is_authenticated
ochUser.is_anonymous
testas för medlemskap iset
(#27309).Åtgärdade en prestandaförlust när
migrate
kördes i projekt medRenameModel
operationer (#27279).Lade till
model_name
tillallow_migrate()
-anropen imakemigrations
(#27200).JavaScriptCatalog
vyn respekterarpackages
argumentet; tidigare ignorerades det (#27374).Fixad
QuerySet.bulk_create() `` på PostgreSQL när antalet objekt är en multipel plus en av ``batch_size
(:biljett:`27385`).Förhindrade
i18n_patterns()
från att använda för mycket av URL:en som språk för att åtgärda ett användningsfall förprefix_default_language=False
(#27063`).Ersatte en eventuellt felaktig omdirigering från
SessionMiddleware
när en session förstörs i en samtidig begäran med enSuspiciousOperation
för att indikera att begäran inte kan slutföras (#27363`).