diff --git a/workflow/engine/methods/login/login.php b/workflow/engine/methods/login/login.php index d06ec840e..d69707fa7 100644 --- a/workflow/engine/methods/login/login.php +++ b/workflow/engine/methods/login/login.php @@ -33,10 +33,22 @@ if ($browserSupported==false){ /*----------------------------------********---------------------------------*/ $aFields = array(); -if (!isset($_GET['u'])) { - $aFields['URL'] = ''; -} else { - $aFields['URL'] = htmlspecialchars(addslashes(stripslashes(strip_tags(trim(urldecode($_GET['u'])))))); +//Validated redirect url +$aFields['URL'] = ''; +if (!empty($_GET['u'])) { + //clean url with protocols + $flagUrl = true; + $protocols = ['https://', 'http://', 'ftp://', 'www.']; + foreach ($protocols as $protocol) { + if (strpos($_GET['u'], $protocol) !== false) { + $_GET['u'] = ''; + $flagUrl = false; + break; + } + } + if ($flagUrl) { + $aFields['URL'] = htmlspecialchars(addslashes(stripslashes(strip_tags(trim(urldecode($_GET['u'])))))); + } } if (!isset($_SESSION['G_MESSAGE'])) {