diff --git a/CHANGES.md b/CHANGES.md index eab85b66..78c6bcbe 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,6 @@ # Changelog + ## Version 11.0.00 - Modifications : - Gestion multi-langues @@ -9,19 +10,25 @@ - Configuration du site : - Activation et désactivation de la déconnexion automatique empêchant plusieurs sessions avec le même compte. +## version 10.4.01 +Corrections : + - Module form, erreur de syntaxe. + - Chargement d'un thème, désactivation du contrôle des clés. + ## version 10.4.00 Corrections : - Bug de pages non accessibles dans le menu suite à la création d'entrées fantômes dans le fichier de données de modules. - - Nettoyage du fichiers des données de modules des entrées fantômes. + - Nettoyage du fichier des données de modules des entrées fantômes. - Thème : déformation des images en arrière-plan dans les modes responsives cover et contain lorsque la longueur de la page change. L'image en arrière-plan est désormais placée dans la balise html et l'option fixe s'active lorsque cover ou contain sont sélectionnés. - Thème : déformation du sélecteur de fichiers dans certains formats de page. - Module Form : mauvais affichage du guillemet et de l'apostrophe dans les noms des champs lors de l'édition. + - Thème : faille CSRF, protection de la réinitialisation des fichiers de thème. - Modifications : - Filtrage des URL générées par facebook (FBCLID) occasionnant une erreur 404 - Captcha arithmétique, activation recommandée dans la configuration. - Module User - Pour les articles de blog et de news, choix de la signature, nom+prenom ; nom+prenom ; id ; pseudo - - Importation d'un liste d'utilisateur dans un fichier plat (CSV). + - Importation d'une liste d'utilisateur dans un fichier plat (CSV). - Module Blog : - Texte du commentaire enrichi. - Nombre maximal de caractère par commentaire. diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index a1820966..32da51ec 100755 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -533,31 +533,43 @@ class theme extends common { * Réinitialisation de la personnalisation avancée */ public function reset() { - // Supprime le fichier de personnalisation avancée - $redirect =''; - switch ($this->getUrl(2)) { - case 'admin': - $this->initData('admin'); - $redirect = helper::baseUrl() . 'theme/admin'; - break; - case 'manage': - $this->initData('theme'); - $redirect = helper::baseUrl() . 'theme/manage'; - break; - case 'custom': - unlink(self::DATA_DIR.'custom.css'); - $redirect = helper::baseUrl() . 'theme/advanced'; - break; - default : - $redirect = helper::baseUrl() . 'theme'; - } + // $url prend l'adresse sans le token + $url = explode('&',$this->getUrl(2)); - // Valeurs en sortie - $this->addOutput([ - 'notification' => 'Réinitialisation effectuée', - 'redirect' => $redirect, - 'state' => true - ]); + if ( isset($_GET['csrf']) + AND $_GET['csrf'] === $_SESSION['csrf'] + ) { + // Réinitialisation + $redirect =''; + switch ($url[0]) { + case 'admin': + $this->initData('admin'); + $redirect = helper::baseUrl() . 'theme/admin'; + break; + case 'manage': + $this->initData('theme'); + $redirect = helper::baseUrl() . 'theme/manage'; + break; + case 'custom': + unlink(self::DATA_DIR.'custom.css'); + $redirect = helper::baseUrl() . 'theme/advanced'; + break; + default : + $redirect = helper::baseUrl() . 'theme'; + } + + // Valeurs en sortie + $this->addOutput([ + 'notification' => 'Réinitialisation effectuée', + 'redirect' => $redirect, + 'state' => true + ]); + } else { + // Valeurs en sortie + $this->addOutput([ + 'notification' => 'Jeton incorrect' + ]); + } } @@ -644,7 +656,7 @@ class theme extends common { // traitement de l'erreur $notification = $success ? 'Le thème a été importé' : 'Erreur lors de l\'extraction, vérifiez les permissions.'; // Check le thème - $this->checkImport($modele); + // $this->checkImport($modele); } else { // pas une archive de thème $success = false; diff --git a/core/module/theme/view/admin/admin.php b/core/module/theme/view/admin/admin.php index 134e4bba..46c20ff3 100755 --- a/core/module/theme/view/admin/admin.php +++ b/core/module/theme/view/admin/admin.php @@ -16,7 +16,7 @@
'buttonRed', - 'href' => helper::baseUrl() . 'theme/reset/admin', + 'href' => helper::baseUrl() . 'theme/reset/admin' . '&csrf=' . $_SESSION['csrf'], 'value' => 'Réinitialiser', 'ico' => 'cancel' ]); ?> diff --git a/core/module/theme/view/advanced/advanced.php b/core/module/theme/view/advanced/advanced.php index c13fbd91..f1895306 100755 --- a/core/module/theme/view/advanced/advanced.php +++ b/core/module/theme/view/advanced/advanced.php @@ -10,7 +10,7 @@
helper::baseUrl() . 'theme/reset/custom', + 'href' => helper::baseUrl() . 'theme/reset/custom' . '&csrf=' . $_SESSION['csrf'], 'class' => 'buttonRed', 'ico' => 'cancel', 'value' => 'Réinitialiser' diff --git a/core/module/theme/view/manage/manage.php b/core/module/theme/view/manage/manage.php index 68de0814..42658cd9 100755 --- a/core/module/theme/view/manage/manage.php +++ b/core/module/theme/view/manage/manage.php @@ -11,7 +11,7 @@
'buttonRed', - 'href' => helper::baseUrl() . 'theme/reset/manage', + 'href' => helper::baseUrl() . 'theme/reset/manage' . '&csrf=' . $_SESSION['csrf'], 'value' => 'Réinitialiser', 'ico' => 'cancel' ]); ?> diff --git a/module/form/form.php b/module/form/form.php index 3b17c1f4..a47a0ec7 100755 --- a/module/form/form.php +++ b/module/form/form.php @@ -32,7 +32,7 @@ class form extends common { public static $pagination; - const FORM_VERSION = '2.6'; + const FORM_VERSION = '2.7'; // Objets const TYPE_MAIL = 'mail'; diff --git a/module/form/view/config/config.php b/module/form/view/config/config.php index 00783b82..5d2e8946 100755 --- a/module/form/view/config/config.php +++ b/module/form/view/config/config.php @@ -104,7 +104,7 @@ 'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'group']), 'help' => 'Editeurs = éditeurs + administrateurs
Membres = membres + éditeurs + administrateurs' ]); ?> -
="row"> +
'A un membre',