pas de captcha simple pour la connexion

This commit is contained in:
deltacms 2024-02-29 23:26:10 +01:00
parent bf0ee708d3
commit 0e10cb2f55
6 changed files with 5 additions and 95 deletions

View File

@ -17,7 +17,7 @@ $text['core_config_view']['bodyheadscript'][2] = 'Script in body';
$text['core_config_view']['connect'][0] = 'Login security';
$text['core_config_view']['connect'][1] = 'Captcha at login';
$text['core_config_view']['connect'][2] = 'Complex captcha';
$text['core_config_view']['connect'][3] = 'With this option if you are recognised as human a very simplified captcha will be displayed. This applies to all captchas on the site.';
$text['core_config_view']['connect'][3] = 'With this option a behavioral captcha will be used. This applies to all captchas on the site except the login one.';
$text['core_config_view']['connect'][4] = 'Captcha type';
$text['core_config_view']['connect'][5] = 'Automatic logout';
$text['core_config_view']['connect'][6] = 'Disconnects previously opened sessions on other browsers or terminals. Activation recommended.';

View File

@ -17,7 +17,7 @@ $text['core_config_view']['bodyheadscript'][2] = 'Script en body';
$text['core_config_view']['connect'][0] = 'Seguridad de conexión';
$text['core_config_view']['connect'][1] = 'Captcha en conexión';
$text['core_config_view']['connect'][2] = 'Captcha complejo';
$text['core_config_view']['connect'][3] = 'Con esta opción, si se le reconoce como humano, se mostrará un captcha muy simplificado. Esto se aplica a todos los captchas del sitio.';
$text['core_config_view']['connect'][3] = 'Con esta opción se utilizará un captcha de comportamiento. Esto se aplica a todos los captchas del sitio excepto al de inicio de sesión.';
$text['core_config_view']['connect'][4] = 'Tipo de captcha';
$text['core_config_view']['connect'][5] = 'Desconexión automática';
$text['core_config_view']['connect'][6] = 'Desconecta sesiones previamente abiertas en otros navegadores o terminales. Activación recomendada.';

View File

@ -17,7 +17,7 @@ $text['core_config_view']['bodyheadscript'][2] = 'Script dans body';
$text['core_config_view']['connect'][0] = 'Sécurité de la connexion';
$text['core_config_view']['connect'][1] = 'Captcha à la connexion';
$text['core_config_view']['connect'][2] = 'Captcha complexe';
$text['core_config_view']['connect'][3] = 'Avec cette option, si vous êtes reconnu comme humain, un captcha très simplifié sera affiché. Ceci s\'applique à tous les captchas du site.';
$text['core_config_view']['connect'][3] = 'Avec cette option un captcha comportemental sera utilisé. Ceci s\'applique à tous les captchas du site sauf à celui de connexion.';
$text['core_config_view']['connect'][4] = 'Type de captcha';
$text['core_config_view']['connect'][5] = 'Déconnexion automatique';
$text['core_config_view']['connect'][6] = 'Déconnecte les sessions ouvertes précédemment sur d\'autres navigateurs ou terminaux. Activation recommandée.';

View File

@ -455,30 +455,7 @@ class user extends common {
if( $this->getData(['config','connect','captcha']) ){
$code ='';
if( isset( $_REQUEST['codeCaptcha'])) $code = strtoupper($_REQUEST['codeCaptcha']);
// option de détection de robot en premier cochée et $_SESSION['humanBot']==='human'
if( $_SESSION['humanBot']==='human' && $this->getData(['config', 'connect', 'captchaBot'])=== true ) {
// Présence des cookies et checkbox cochée ?
$detectBot ='bot';
$captcha = false;
if ( isset ($_COOKIE['evtX']) && isset ($_COOKIE['evtO']) && isset ($_COOKIE['evtV']) && isset ($_COOKIE['evtA'])
&& isset ($_COOKIE['evtH']) && isset ($_COOKIE['evtS']) && $this->getInput('userHumanCheck', helper::FILTER_BOOLEAN) === true ) {
// Calcul des intervals de temps
$time1 = 0;
if( isset ($_COOKIE['evtC'])) $time1 = $_COOKIE['evtC'] - $_COOKIE['evtO']; // temps entre fin de saisie et ouverture de la page
$time2 = $_COOKIE['evtH'] - $_COOKIE['evtO']; // temps entre click checkbox et ouverture de la page
$time3 = $_COOKIE['evtV'] - $_COOKIE['evtH']; // temps entre validation formulaire et click checkbox
$time4 = $_COOKIE['evtS'] - $_COOKIE['evtA']; // temps passé sur la checkbox
if( ( $time1 >= 1000 || ( isset ($_COOKIE['evtX']) && !isset ($_COOKIE['evtC']) ) ) && $time2 >= 1000
&& $time3 >=300 && $time4 >=300 && $this->getInput('userInputBlue')==='' ) {
$detectBot = 'human';
$captcha = true;
}
}
// Bot présumé
if( $detectBot === 'bot') $_SESSION['humanBot']='bot';
}
// $_SESSION['humanBot']==='bot' ou option 'Pas de Captcha pour un humain' non validée
elseif( md5($code) !== $_SESSION['captcha'] ) {
if( md5($code) !== $_SESSION['captcha'] ) {
$captcha = false;
} else {
$captcha = true;

View File

@ -10,54 +10,6 @@ $(".delta-ico-eye").mouseleave(function() {
$("#userLoginPassword").attr("type","password");
});
/* Création et mise à jour du cookie sur modification d'un input */
$( ".humanBot" ).mouseleave(function() {
const d = new Date();
time = d.getTime();
document.cookie = "evtC = " + time + ";SameSite=Strict";
});
/* Cookie supplémentaire pour autoremplissage des champs */
$( ".humanBot" ).change(function() {
const d = new Date();
time = d.getTime();
document.cookie = "evtX = " + time + ";SameSite=Strict";
});
/* Création d'un cookie à l'ouverture de la page formulaire*/
$(document).ready(function(){
const d = new Date();
time = d.getTime();
document.cookie = "evtO = " + time + ";SameSite=Strict";
});
/* Création d'un cookie à la validation de la checkbox 'je ne suis pas un robot'*/
$( ".humanCheck" ).click(function() {
const d = new Date();
time = d.getTime();
document.cookie = "evtH = " + time + ";SameSite=Strict";
});
/* Création d'un cookie quand on arrive sur la checkbox 'je ne suis pas un robot' */
$( ".humanCheck" ).mouseenter(function() {
const d = new Date();
time = d.getTime();
document.cookie = "evtA = " + time + ";SameSite=Strict";
});
/* Création d'un cookie quand on quitte la checkbox 'je ne suis pas un robot' */
$( ".humanCheck" ).mouseleave(function() {
const d = new Date();
time = d.getTime();
document.cookie = "evtS = " + time + ";SameSite=Strict";
});
/* Création d'un cookie à la validation du formulaire */
$( ".humanBotClose" ).click(function() {
const d = new Date();
time = d.getTime();
document.cookie = "evtV = " + time + ";SameSite=Strict";
});
/* Affecter la couleur de bordure des blocs ou du fond à la class formOuter */
$(document).ready(function(){

View File

@ -24,31 +24,12 @@ echo template::formOpen('userLoginForm');
</div>
</div>
<?php if ($this->getData(['config', 'connect','captcha'])){ ?>
<?php if( ($_SESSION['humanBot']==='bot') || $this->getData(['config', 'connect', 'captchaBot'])=== false ) { ?>
<div class="row">
<div class="col12 textAlignCenter">
<?php echo template::captcha('userLoginCaptcha', ''); ?>
</div>
</div>
<?php } else { ?>
<div class="userCheckBlue">
<?php echo template::text('userInputBlue', [
'label' => 'Input Blue',
'value' => ''
]); ?>
</div>
<br>
<div class="userOuter">
<div class="userInner humanCheck">
<?php echo template::checkbox('userHumanCheck', true, $this->getData(['locale', 'captchaSimpleText']), [
'checked' => false,
'help' => $this->getData(['locale', 'captchaSimpleHelp']),
'required' => true
]); ?>
</div>
</div>
<br>
<?php } } ?>
<?php } ?>
<div class="row">
<div class="col6">
<?php echo template::checkbox('userLoginLongTime', true, $text['core_user_view']['login'][4], [