From 97f9d6dddcadc9a01b098ec3552e204ce1c7a2ab Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Tue, 7 May 2024 18:13:51 +0200 Subject: [PATCH] fix: pas d'indirection PHP par defaut dans les modeles en previsu, et l'eventuel PHP restant venant de modeles persos necessite une autorisation pour eval Refs: spip-team/security#4853 --- action/porte_plume_previsu.php | 4 ++++ porte_plume_fonctions.php | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/action/porte_plume_previsu.php b/action/porte_plume_previsu.php index 6027938..9c3b8c4 100644 --- a/action/porte_plume_previsu.php +++ b/action/porte_plume_previsu.php @@ -35,5 +35,9 @@ function action_porte_plume_previsu_dist() { $contexte = []; } + // pas d'indirection PHP dans les modeles formulaire + $GLOBALS['_FORCER_EXECUTER_DIRECTEMENT_BALISE_DYNAMIQUE'] = true; echo recuperer_fond('prive/porte_plume_preview', $contexte); + // retablir le fonctionnement par défaut pour les éventuels crons qui vont tourner après + unset($GLOBALS['_FORCER_EXECUTER_DIRECTEMENT_BALISE_DYNAMIQUE']); } diff --git a/porte_plume_fonctions.php b/porte_plume_fonctions.php index d8b700a..e2c638c 100644 --- a/porte_plume_fonctions.php +++ b/porte_plume_fonctions.php @@ -863,7 +863,8 @@ function traitements_previsu($texte, $nom_champ = '', $type_objet = '', $connect } // si il y a du PHP issu de modeles, il faut l'eval ici, car on aura pas de eval final contrairement aux pages SPIP - if (defined('_PROTEGE_PHP_MODELES')) { + if (defined('_PROTEGE_PHP_MODELES') + && autoriser('previsualiser','modelesphp')) { $texte = echappe_retour($texte, 'php' . _PROTEGE_PHP_MODELES, 'traitements_previsu_php_modeles_eval'); } -- GitLab