Skip to content

Commit 2c8808c

Browse files
authored
Merge pull request #519 from TreyWW/alert-autofix-20
Fix code scanning alert no. 20: URL redirection from remote source
2 parents f78e012 + 0c8a472 commit 2c8808c

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

backend/core/views/auth/login.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from django.shortcuts import render, redirect
1111
from django.urls import resolve, reverse
1212
from django.urls.exceptions import Resolver404
13+
from django.utils.http import url_has_allowed_host_and_scheme
1314
from django.utils.decorators import method_decorator
1415
from django.views import View
1516
from django.views.decorators.http import require_GET, require_POST
@@ -76,10 +77,13 @@ def login_manual(request: HttpRequest):
7677
messages.warning(request, "You have been requested by an administrator to change your account password.")
7778
return redirect("settings:change_password")
7879

79-
try:
80-
resolve(redirect_url)
81-
return redirect(redirect_url)
82-
except Resolver404:
80+
if url_has_allowed_host_and_scheme(redirect_url, allowed_hosts=None):
81+
try:
82+
resolve(redirect_url)
83+
return redirect(redirect_url)
84+
except Resolver404:
85+
return redirect("dashboard")
86+
else:
8387
return redirect("dashboard")
8488

8589

0 commit comments

Comments
 (0)