Skip to content
Extraits de code Groupes Projets
Valider ab609ec6 rédigé par fil@rezo.net's avatar fil@rezo.net
Parcourir les fichiers

0.9.9: affiner la detection de 'op' pour ne pas nuire a drupal, et bloquer les...

0.9.9: affiner la detection de 'op' pour ne pas nuire a drupal, et bloquer les xss sur var_recherche
parent a988d98a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* ------------------ * ------------------
*/ */
define('_ECRAN_SECURITE', '0.9.8'); // 17 janv 2011 define('_ECRAN_SECURITE', '0.9.9'); // 23 janv 2011
/* /*
* Documentation : http://www.spip.net/fr_article4200.html * Documentation : http://www.spip.net/fr_article4200.html
...@@ -50,13 +50,14 @@ foreach ($GLOBALS as $var => $val) ...@@ -50,13 +50,14 @@ foreach ($GLOBALS as $var => $val)
*/ */
$cjpeg_command=''; $cjpeg_command='';
/* - controle la variable $lang (XSS) /* - controle la variable lang, var_recherche (XSS)
* *
*/ */
if (isset($_GET['lang'])) foreach(array('lang', 'var_recherche') as $ecran_securite_i)
$GLOBALS['lang'] = $_GET['lang'] = htmlentities((string)$_GET['lang']); if (isset($_GET[$ecran_securite_i]))
if (isset($_POST['lang'])) $_REQUEST[$ecran_securite_i] = $GLOBALS[$ecran_securite_i] = $_GET[$ecran_securite_i] = preg_replace(',[^\w-]+,',' ',(string)$_GET[$ecran_securite_i]);
$GLOBALS['lang'] = $_POST['lang'] = htmlentities((string)$_POST['lang']); if (isset($_POST[$ecran_securite_i]))
$_REQUEST[$ecran_securite_i] = $GLOBALS[$ecran_securite_i] = $_POST[$ecran_securite_i] = preg_replace(',[^\w-]+,',' ',(string)$_POST[$ecran_securite_i]);
/* - filtre l'acces a spip_acces_doc (injection SQL en 1.8.2x) /* - filtre l'acces a spip_acces_doc (injection SQL en 1.8.2x)
* *
...@@ -184,13 +185,12 @@ AND strstr((string)$_REQUEST['znom_sauvegarde'], '/')) ...@@ -184,13 +185,12 @@ AND strstr((string)$_REQUEST['znom_sauvegarde'], '/'))
/* /*
* op, lang, permettent des inclusions arbitraires * op permet des inclusions arbitraires ;
* on verifie 'page' pour ne pas bloquer ... drupal
*/ */
foreach (array('op','lang') as $var) if (isset($_REQUEST['op']) AND isset($_REQUEST['page'])
if (isset($_REQUEST[$var]) AND $_REQUEST['op'] !== preg_replace('/[^\-\w]/', '', $_REQUEST['op']))
AND $_REQUEST[$var] !== preg_replace('/[^\-\w]/', '', $_REQUEST[$var])) $ecran_securite_raison = 'op';
$ecran_securite_raison = "$var";
/* /*
* S'il y a une raison de mourir, mourons * S'il y a une raison de mourir, mourons
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter