Типове використання в атаках
- Фішинг — посилання виглядає довіреним
- OAuth redirect hijacking — підмінити redirect_uri у OAuth flow
- Обхід referer-перевірок
Захист
- Whitelist дозволених URL або доменів для редиректу
- Не приймати зовнішні URL у параметрах редиректу
- Порівнювати host URL з поточним доменом перед редиректом
// Перевірка: тільки відносні URL
function safeRedirect(string $url): string {
$parsed = parse_url($url);
// відхилити якщо є scheme або host
if (isset($parsed['scheme']) || isset($parsed['host'])) {
return '/'; // fallback на домашню
}
return $url;
}