From d192dab23f01a3958916826d8c42c8941cf39df0 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Thu, 6 Jan 2011 10:48:11 +0000 Subject: [PATCH] report de r16884 : bloquer les redirection absolues dans le formulaire de login, en prevoyant une constante pour les webmestres qui veulent desactiver cela pour des raisons qui leur appartiennent (ce qui permet de securiser en assurant tout de meme une continuite de fonctionnement pour ceux qui utilisaient malheureusement cette fonctionnalite). --- prive/formulaires/login.php | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/prive/formulaires/login.php b/prive/formulaires/login.php index 3cfeb44760..c999804053 100644 --- a/prive/formulaires/login.php +++ b/prive/formulaires/login.php @@ -185,14 +185,21 @@ function formulaires_login_traiter_dist($cible="",$login="",$prive=null){ if ($cible) { $cible = parametre_url($cible, 'var_login', '', '&'); - } - - // transformer la cible absolue en cible relative - // pour pas echouer quand la meta adresse_site est foireuse - if (strncmp($cible,$u = url_de_base(),strlen($u))==0){ - $cible = "./".substr($cible,strlen($u)); + + // transformer la cible absolue en cible relative + // pour pas echouer quand la meta adresse_site est foireuse + if (strncmp($cible,$u = url_de_base(),strlen($u))==0){ + $cible = "./".substr($cible,strlen($u)); + } + + // si c'est une url absolue, refuser la redirection + // sauf si cette securite est levee volontairement par le webmestre + elseif (preg_match(";^([a-z]+:)?//;Uims",$cible) AND !defined('_AUTORISER_LOGIN_ABS_REDIRECT')) { + $cible = ""; + } } + // Si on est admin, poser le cookie de correspondance if ($GLOBALS['auteur_session']['statut'] == '0minirezo') { include_spip('inc/cookie'); -- GitLab