From 258ebce4a179bd95f0b7eba91ce4c6347d9d2a26 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Mon, 28 Dec 2020 21:08:33 +0100 Subject: [PATCH 1/5] =?UTF-8?q?RAZ=20donn=C3=A9es=20de=20blocage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core.php | 5 +---- core/module/user/user.php | 7 +++++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/core/core.php b/core/core.php index b7098275..1d7c0f43 100755 --- a/core/core.php +++ b/core/core.php @@ -86,6 +86,7 @@ class common { public static $inputBefore = []; public static $inputNotices = []; public static $importNotices = []; + public static $captchaNotices = []; public static $coreNotices = []; public $output = [ 'access' => true, @@ -2710,10 +2711,6 @@ class layout extends common { foreach (common::$coreNotices as $item) $notification .= $item . ' | '; $notificationClass = 'notificationError'; } - if(common::$inputNotices) { - $notification = 'Impossible de soumettre le formulaire, car il contient des erreurs'; - $notificationClass = 'notificationError'; - } elseif(empty($_SESSION['ZWII_NOTIFICATION_SUCCESS']) === false) { $notification = $_SESSION['ZWII_NOTIFICATION_SUCCESS']; $notificationClass = 'notificationSuccess'; diff --git a/core/module/user/user.php b/core/module/user/user.php index 46a253d5..73751843 100755 --- a/core/module/user/user.php +++ b/core/module/user/user.php @@ -370,7 +370,7 @@ class user extends common { } else { // Valeurs en sortie $this->addOutput([ - 'notification' => 'Identifiant ou mot de passe incorrect' + 'notification' => 'Identifiant ou mot de passe incorrects' ]); } /** @@ -391,6 +391,9 @@ 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 ) { + // RAZ + $this->setData(['user',$userId,'connectFail',0 ]); + $this->setData(['user',$userId,'connectTimeout',0 ]); // Expiration $expire = $this->getInput('userLoginLongTime') ? strtotime("+1 year") : 0; $c = $this->getInput('userLoginLongTime', helper::FILTER_BOOLEAN) === true ? 'true' : 'false'; @@ -419,7 +422,7 @@ class user extends common { } // Sinon notification d'échec } else { - $notification = 'Identifiant ou mot de passe incorrect'; + $notification = 'Identifiant ou mot de passe incorrects'; // Cas 1 le nombre de connexions est inférieur aux tentatives autorisées : incrément compteur d'échec if ($this->getData(['user',$userId,'connectFail']) < $this->getData(['config', 'connect', 'attempt'])) { $this->setData(['user',$userId,'connectFail',$this->getdata(['user',$userId,'connectFail']) + 1 ]); From 1cf8ff5ca115c4a674f739a59674f40d7ee1c46f Mon Sep 17 00:00:00 2001 From: fredtempez Date: Wed, 30 Dec 2020 17:27:45 +0100 Subject: [PATCH 2/5] Message de bienvenue --- CHANGES.md | 1 + core/module/user/user.php | 31 ++++++++++++++++++++++++------- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 00194492..20a83dc8 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,6 +7,7 @@ Modifications : - Message d'erreur littéral. - Sauvegarde des fichiers de données après un effacement et une écriture. - Google Analytics, option d'anonymisation. + - Procédure de connexion : les erreurs de captach sont comptabilisées comme des échecs, allégement des messages d'information. Correction : - Notification de commentaire, nom de la page incorrect. diff --git a/core/module/user/user.php b/core/module/user/user.php index 73751843..5d465942 100755 --- a/core/module/user/user.php +++ b/core/module/user/user.php @@ -334,15 +334,32 @@ class user extends common { public function login() { // Soumission du formulaire if($this->isPost()) { - // Check la captcha + // Lire Id du compte + $userId = $this->getInput('userLoginId', helper::FILTER_ID, true); + // Check le captcha if( $this->getData(['config','connect','captcha']) AND password_verify($this->getInput('userLoginCaptcha', helper::FILTER_INT), $this->getInput('userLoginCaptchaResult') ) === false ) { - self::$inputNotices['userLoginCaptcha'] = 'Incorrect'; + //self::$inputNotices['userLoginCaptcha'] = 'Incorrect'; + $notification = 'Captcha incorrect !'; + // Cas 1 le nombre de connexions est inférieur aux tentatives autorisées : incrément compteur d'échec + if ($this->getData(['user',$userId,'connectFail']) < $this->getData(['config', 'connect', 'attempt'])) { + $this->setData(['user',$userId,'connectFail',$this->getdata(['user',$userId,'connectFail']) + 1 ]); + } + // Cas 2 la limite du nombre de connexion est atteinte : placer le timer + if ( $this->getdata(['user',$userId,'connectFail']) == $this->getData(['config', 'connect', 'attempt']) ) { + $this->setData(['user',$userId,'connectTimeout', time()]); + } + // Cas 3 le délai de bloquage court + if ($this->getData(['user',$userId,'connectTimeout']) + $this->getData(['config', 'connect', 'timeout']) > time() ) { + $notification = 'Accès bloqué ' . ($this->getData(['config', 'connect', 'timeout']) / 60) . ' minutes.'; + } + // Valeurs en sortie + $this->addOutput([ + 'notification' => $notification + ]); } else { - // Lire Id du compte - $userId = $this->getInput('userLoginId', helper::FILTER_ID, true); /** * Aucun compte existant */ @@ -363,7 +380,7 @@ class user extends common { AND in_array($this->getData(['blacklist',$userId,'ip']),$ipBlackList) ) { // Valeurs en sortie $this->addOutput([ - 'notification' => 'Trop de tentatives, compte verrouillé', + 'notification' => 'Compte verrouillé', 'redirect' => helper::baseUrl(), 'state' => false ]); @@ -415,7 +432,7 @@ class user extends common { } else { // Valeurs en sortie $this->addOutput([ - 'notification' => 'Connexion réussie', + 'notification' => 'Bienvenue ' . $this->getData(['user',$userId,'firstname']) . ' ' . $this->getData(['user',$userId,'lastname']) , 'redirect' => helper::baseUrl() . str_replace('_', '/', str_replace('__', '#', $this->getUrl(2))), 'state' => true ]); @@ -433,7 +450,7 @@ class user extends common { } // Cas 3 le délai de bloquage court if ($this->getData(['user',$userId,'connectTimeout']) + $this->getData(['config', 'connect', 'timeout']) > time() ) { - $notification = 'Trop de tentatives, accès bloqué durant ' . ($this->getData(['config', 'connect', 'timeout']) / 60) . ' minutes.'; + $notification = 'Accès bloqué ' . ($this->getData(['config', 'connect', 'timeout']) / 60) . ' minutes.'; } // Journalisation $dataLog = mb_detect_encoding(strftime('%d/%m/%y',time()), 'UTF-8', true) From 4535c05dd254195c6a1fa8096c4a7c632b730b12 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Wed, 30 Dec 2020 17:30:35 +0100 Subject: [PATCH 3/5] change --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 20a83dc8..e78b8cd7 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,7 +7,7 @@ Modifications : - Message d'erreur littéral. - Sauvegarde des fichiers de données après un effacement et une écriture. - Google Analytics, option d'anonymisation. - - Procédure de connexion : les erreurs de captach sont comptabilisées comme des échecs, allégement des messages d'information. + - Procédure de connexion : les erreurs de captcah sont comptabilisées comme des échecs, allégement des messages d'information. Correction : - Notification de commentaire, nom de la page incorrect. From 1eeb8fcac787f26b370ff6f27a3535eb0c898d2f Mon Sep 17 00:00:00 2001 From: fredtempez Date: Wed, 30 Dec 2020 17:30:57 +0100 Subject: [PATCH 4/5] change --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 20a83dc8..b099fc56 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,7 +7,7 @@ Modifications : - Message d'erreur littéral. - Sauvegarde des fichiers de données après un effacement et une écriture. - Google Analytics, option d'anonymisation. - - Procédure de connexion : les erreurs de captach sont comptabilisées comme des échecs, allégement des messages d'information. + - Procédure de connexion : les erreurs de captcha sont comptabilisées comme des échecs, allégement des messages d'information. Correction : - Notification de commentaire, nom de la page incorrect. From c57b176f204e21b02ab6b38ae78b17030831aee9 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Thu, 31 Dec 2020 17:19:02 +0100 Subject: [PATCH 5/5] change --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index e78b8cd7..b099fc56 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,7 +7,7 @@ Modifications : - Message d'erreur littéral. - Sauvegarde des fichiers de données après un effacement et une écriture. - Google Analytics, option d'anonymisation. - - Procédure de connexion : les erreurs de captcah sont comptabilisées comme des échecs, allégement des messages d'information. + - Procédure de connexion : les erreurs de captcha sont comptabilisées comme des échecs, allégement des messages d'information. Correction : - Notification de commentaire, nom de la page incorrect.