Faille csrf : réinitialisation du custom.css

This commit is contained in:
fredtempez 2021-02-06 20:01:10 +01:00
parent 9367721d99
commit 418f5d74d2
5 changed files with 40 additions and 27 deletions

View File

@ -7,6 +7,7 @@ Corrections :
- 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 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. - 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. - 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 : - Modifications :
- Filtrage des URL générées par facebook (FBCLID) occasionnant une erreur 404 - Filtrage des URL générées par facebook (FBCLID) occasionnant une erreur 404
- Captcha arithmétique, activation recommandée dans la configuration. - Captcha arithmétique, activation recommandée dans la configuration.

View File

@ -533,31 +533,43 @@ class theme extends common {
* Réinitialisation de la personnalisation avancée * Réinitialisation de la personnalisation avancée
*/ */
public function reset() { public function reset() {
// Supprime le fichier de personnalisation avancée // $url prend l'adresse sans le token
$redirect =''; $url = explode('&',$this->getUrl(2));
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';
}
// Valeurs en sortie if ( isset($_GET['csrf'])
$this->addOutput([ AND $_GET['csrf'] === $_SESSION['csrf']
'notification' => 'Réinitialisation effectuée', ) {
'redirect' => $redirect, // Réinitialisation
'state' => true $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'
]);
}
} }

View File

@ -16,7 +16,7 @@
<div class="col2 offset"> <div class="col2 offset">
<?php echo template::button('configAdminReset', [ <?php echo template::button('configAdminReset', [
'class' => 'buttonRed', 'class' => 'buttonRed',
'href' => helper::baseUrl() . 'theme/reset/admin', 'href' => helper::baseUrl() . 'theme/reset/admin' . '&csrf=' . $_SESSION['csrf'],
'value' => 'Réinitialiser', 'value' => 'Réinitialiser',
'ico' => 'cancel' 'ico' => 'cancel'
]); ?> ]); ?>

View File

@ -10,7 +10,7 @@
</div> </div>
<div class="col2 offset6"> <div class="col2 offset6">
<?php echo template::button('themeAdvancedReset', [ <?php echo template::button('themeAdvancedReset', [
'href' => helper::baseUrl() . 'theme/reset/custom', 'href' => helper::baseUrl() . 'theme/reset/custom' . '&csrf=' . $_SESSION['csrf'],
'class' => 'buttonRed', 'class' => 'buttonRed',
'ico' => 'cancel', 'ico' => 'cancel',
'value' => 'Réinitialiser' 'value' => 'Réinitialiser'

View File

@ -11,7 +11,7 @@
<div class="col2 offset6"> <div class="col2 offset6">
<?php echo template::button('configManageReset', [ <?php echo template::button('configManageReset', [
'class' => 'buttonRed', 'class' => 'buttonRed',
'href' => helper::baseUrl() . 'theme/reset/manage', 'href' => helper::baseUrl() . 'theme/reset/manage' . '&csrf=' . $_SESSION['csrf'],
'value' => 'Réinitialiser', 'value' => 'Réinitialiser',
'ico' => 'cancel' 'ico' => 'cancel'
]); ?> ]); ?>