Open Redirect (открытое перенаправление)
Перенаправление на произвольный URL из параметра позволяет маскировать фишинговые ссылки.
Сигнатура
Open RedirectOpen Redirect возникает, когда сайт перенаправляет на адрес из пользовательского параметра без проверки. Злоумышленник делает ссылку с доверенным доменом, которая уводит жертву на фишинговый сайт, повышая доверие к атаке.
Как защититься: разрешайте перенаправление только на относительные пути или белый список доменов, не используйте сырой параметр next/url для редиректа.
from urllib.parse import urlparse
def safe_redirect(target):
# Разрешаем только относительные пути внутри сайта
parsed = urlparse(target)
if parsed.netloc or parsed.scheme:
return "/" # внешний адрес — отклоняем
return target