Django 1.6.11 release notes¶
18 mars 2015
Django 1.6.11 åtgärdar två säkerhetsproblem i 1.6.10.
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()
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()
) accepterade webbadresser med ledande kontrolltecken och ansåg därför att webbadresser som \x08javascript:...
var säkra. Detta problem 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. Webbläsare som vi testade behandlar också webbadresser med kontrolltecken som %08//example.com
som relativa sökvägar, så omdirigering till ett osäkert mål är inte heller ett problem.
Men om en utvecklare förlitar sig på is_safe_url()
för att tillhandahålla säkra omdirigeringsmål och lägger in en sådan URL i en länk, kan de drabbas av en XSS-attack eftersom vissa webbläsare som Google Chrome ignorerar kontrolltecken i början av en URL i ankaret href
.