From 20732d5f8af204a527d19fa4b271bb836be082f5 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Sun, 12 Jul 2020 17:50:09 +0200 Subject: [PATCH 1/2] =?UTF-8?q?S=C3=A9curisation=20des=20cookies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/class/helper.class.php | 2 +- core/module/user/user.php | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/core/class/helper.class.php b/core/class/helper.class.php index c337becc..77549581 100755 --- a/core/class/helper.class.php +++ b/core/class/helper.class.php @@ -219,7 +219,7 @@ class helper { */ public static function deleteCookie($cookieKey) { unset($_COOKIE[$cookieKey]); - setcookie($cookieKey, '', time() - 3600, helper::baseUrl(false, false)); + setcookie($cookieKey, '', time() - 3600, helper::baseUrl(false, false), '', false, true); } /** diff --git a/core/module/user/user.php b/core/module/user/user.php index ffd92275..ee68ac38 100755 --- a/core/module/user/user.php +++ b/core/module/user/user.php @@ -386,9 +386,17 @@ class user extends common { AND password_verify($this->getInput('userLoginPassword', helper::FILTER_STRING_SHORT, true), $this->getData(['user', $userId, 'password'])) AND $this->getData(['user', $userId, 'group']) >= self::GROUP_MEMBER ) { + // Protocol + $secure = false; + if( + (empty($_SERVER['HTTPS']) === false AND $_SERVER['HTTPS'] !== 'off') + OR $_SERVER['SERVER_PORT'] === 443 + ) { + $secure = true; + } $expire = $this->getInput('userLoginLongTime') ? strtotime("+1 year") : 0; - setcookie('ZWII_USER_ID', $userId, $expire, helper::baseUrl(false, false)); - setcookie('ZWII_USER_PASSWORD', $this->getData(['user', $userId, 'password']), $expire, helper::baseUrl(false, false)); + setcookie('ZWII_USER_ID', $userId, $expire, helper::baseUrl(false, false), '', $secure, true); + setcookie('ZWII_USER_PASSWORD', $this->getData(['user', $userId, 'password']), $expire, helper::baseUrl(false, false), '', $secure, true); // Accès multiples avec le même compte $this->setData(['user',$userId,'accessCsrf',$_SESSION['csrf']]); // Valeurs en sortie lorsque le site est en maintenance et que l'utilisateur n'est pas administrateur From 6d5caf86230b34c4f5c474b1e9cb0cfaca97aa0d Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Sun, 12 Jul 2020 17:57:20 +0200 Subject: [PATCH 2/2] Changes --- CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.md b/CHANGES.md index 73d69ca2..6e324e41 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,6 +7,7 @@ - Reformulation du mail de confirmation d'inscription. - Champ de sélection de fichiers, suppression de la couleur des URL lors d'un survol - Modifications : + - Sécurisation des deux cookies d'authentification (options httpOnly et secure). - La couleur du texte des headers avec un lien est celle des titres et non des liens. ## version 10.2.02