Valider 419912dc rédigé par cerdic's avatar cerdic Validation de marcimat
Parcourir les fichiers

Fix un problème recurent de fuite de données lorsque les utilisateur mettent...

Fix un problème recurent de fuite de données lorsque les utilisateur mettent un #FORMULAIRE_TRUC dans un modeles/xxxx.html : le formulaire perd son dynamisme quand il est inclus dans l'appelant, que ce soit via un <xxxx|> ou via un #MODELE{xxx}. On repere le cas est on injecte du PHP qui appelle la fonction executer_balise_dynamique() au lieu d'injecter l'appel a la fonction lui meme

(cherry picked from commit 255be8fb)
parent 2b4e21c7
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+14 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -135,7 +135,20 @@ function balise_FORMULAIRE__dist($p) {
	}

	// sinon renvoyer un code php dynamique
	return calculer_balise_dynamique($p, $p->nom_champ, []);
	$p = calculer_balise_dynamique($p, $p->nom_champ, []);

	if (!test_espace_prive()
	  and !empty($p->descr['sourcefile'])
	  and $f = $p->descr['sourcefile']
	  and basename(dirname($f)) === 'modeles') {
		// un modele est toujours inséré en texte dans son contenant
		// donc si on est dans le public avec un cache on va perdre le dynamisme
		// et on risque de mettre en cache les valeurs pre-remplies du formulaire
		// on injecte donc le PHP qui va appeler la fonction pour generer le formulaire au lieu de directement la fonction
		$p->code = "'<'.'?php echo (".texte_script($p->code)."); ?'.'>'";
		// dans l'espace prive on a pas de cache, donc pas de soucis (et un leak serait moins grave)
	}
	return $p;
}

/**
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -449,7 +449,7 @@ define('_SPIP_EXTRA_VERSION', '');
#define('_DEV_VERSION_SPIP_COMPAT',"3.2.99");
// version des signatures de fonctions PHP
// (= date de leur derniere modif cassant la compatibilite et/ou necessitant un recalcul des squelettes)
$spip_version_code = 20211021;
$spip_version_code = 20211117;
// version de la base SQL (= Date + numero incremental a 2 chiffres YYYYMMDDXX)
$spip_version_base = 2021021800;