18 mars 2015
Django 1.6.11 åtgärdar två säkerhetsproblem i 1.6.10.
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.
aug. 11, 2025