Joomla 4 - re-Captcha a disparu
Ferméjmgroud Messages postés 39 Date d'inscription mardi 23 mai 2006 Statut Membre Dernière intervention 10 mars 2023 - 10 mars 2023 à 05:20
- Joomla 4 - re-Captcha a disparu
- Facebook rencontre a disparu ✓ - Forum Facebook
- Clavier android disparu - Guide
- Captcha invalide - Forum Mozilla Firefox
- Code gta 4 ps4 - Guide
- Comment saisir un code captcha ✓ - Forum Réseaux sociaux
5 réponses
Bonjour,
En comparant les formulaires pour l'inscription et la connexion dans les sources de Joomla, il semble qu'il n'y a jamais eu de captcha sur le formulaire de connexion :
https://github.com/joomla/joomla-cms/blob/4.2-dev/components/com_users/forms/registration.xml
https://github.com/joomla/joomla-cms/blob/4.2-dev/components/com_users/forms/login.xml
Puisque le capctha est disponible sur le formulaire d'inscription, avec la vérification des comptes à l'inscription, il semble que le captcha ne soit pas nécessaire sur le formulaire de connexion. A voir dans le JED (https://extensions.joomla.org/) si des extensions permettent d'afficher le captcha si vraiment tu souhaites l'avoir lors de la connexion.
Modifié le 8 mars 2023 à 13:08
Bonjour Pitet
Vous avez en effet raison sur le fait que Joomla, de base, n'affiche par le captcha lors du processus de connexion (j'étais dans l'erreur), mais uniquement lors de la création d'un nouveau compte (ou autres...).
Il faut donc installer une extension tierce comme "AuthCaptcha" pour voir apparaître le captcha au moment de la connexion.
A ce jour, les robots des pirates attaquent régulièrement nos sites et nous devons (c'est en tout cas mon avis) mettre en place des systèmes qui empêchent des personnes non habilités à se connecter...
Les utilisateurs qui créés leur compte ne sont pas toujours (je dirai même rarement) au courant des failles de sécurité au niveau même de leur propre matériel et dans ce cas, un virus peut récupérer les identifiants et mots de passe de connexion et se connecter à la place d'une véritable personne.
Le captcha n'est pas "La solution miracle" je sais, mais une barrière supplémentaires pour les robots. Si l'utilisateur donne ses identifiants (décision personnelle ou par virus) à d'autres, il est difficile, voir impossible de tout protéger. J'utilise donc un Captcha de connexion ainsi qu'une extension complémentaire de sécurité ("Admin Tools" en ce qui me concerne, je sais qu'il y en a d'autres...).
J'ai appris qu'il y avait également d'autres systèmes du côté serveur, par exemple "Cloudflare "... Aujourd'hui, je ne sais pas exactement comment tout ceci fonctionne ni comment mettre en place ce système (mon hébergeur ? une autre extension Joomla ?) mais je vais étudier aussi cette voie.
Je vais donc installer "AuthCaptcha" et voir si ceci règle le sujet propre de ce post (disparition du captcha au moment du processus de connexion) et mettrai ce sujet "REGLE" si c'est une solution.
En effet je constate la même erreur avec AuthCaptcha et jGraphic activé.
Il s'agit d'un problème de code PHP, l'extension jGraphic semble ne pas avoir prévu que son captcha puisse être utilisé par un autre plugin.
Avant le chargement de la page, le plugin AuthCaptcha déclenche l'événement onDisplay de l'API Captcha de Joomla pour récupérer le code html du captcha configuré. L'événement est déclenché sans paramètre.
Pas d'erreur avec recaptcha puisque des paramètres par défaut sont définis pour la fonction onDisplay(), contrairement au plugin jGraphic qui attends 3 paramètres $name, $id et $class sans valeurs par défaut (d'où l'erreur "Too few arguments to function onDisplay(), exactly 3 expected").
On peut comparer la déclaration des deux fonctions dans les fichiers du dossier plugins :
plugins/captcha/recaptcha/recaptcha.php
public function onDisplay($name = null, $id = 'dynamic_recaptcha_1', $class = '')
plugins/captcha/jgraphiccaptchaprotection/jgraphiccaptchaprotection.php
public function onDisplay($name, $id, $class) {
Il n'est pas recommandé de modifier le code source des extensions ou plugins car on perd les modifications en cas de mise à jour. Néanmoins le site de l'éditeur de jGraphic indique que la dernière maj date de février 2021.
On peut corriger l'erreur en ajoutant des valeurs par défaut aux paramètres de la fonction onDisplay dans le fichier jgraphiccaptchaprotection.php à partir de la ligne 22 :
public function onDisplay($name = 'jform[captcha]', $id = 'jform_captcha', $class = null) { return $this->PrintCells().'<input type="hidden" value="none" name="'.$name.'" id="'.$id.'" >'; }
8 mars 2023 à 20:31
Je reviens vers vous après mes tests avec l'extension "AuthCaptcha".
L'installation s'installe correctement et 'reCaptcha' fonctionne à la fois dans les formulaires prévus par Joomla et en plus dans les formulaires de connexion.
C'est très bien, mais malheureusement j'ai un message d'erreur lorsque j'active cette extension avec une autre extension que 'reCaptcha', par exemple 'keyCaptcha ou 'jGraphic Captcha Protection'). Tous ces Captcha fonctionnent dans les formulaires suivant la configuration de Joomla avec 'AuthCaptcha' désactivé.
Exemples avec 'jGraphic Captcha Protection'
Si je garde les 2 plugins captcha activés (reCaptcha + 'jGraphic Captcha Protection' avec 'reCaptcha' choisi dans les paramètres de Joomla.
0 Too few arguments to function PlgCaptchaJgraphiccaptchaprotection: onDisplay(), 0 passed in /homepages/27/d203673211/htdocs/felicite19-Joomla4/libraries/src/Plugin/CMSPlugin.php on line 279 and exactly 3 expected
Si je désactive le reCaptcha et que je choisis 'jGraphic Captcha Protection' en tant que Captcha par défaut dans les paramètres de Joomla, j'ai la même erreur.
Si j'active 'jGraphic Captcha Protection' et 'reCaptcha' avec 'reCaptcha' comme captcha par défaut
- Message d'erreur
- Le module de connexion ne fait apparaître aucun captcha
- Tous les autres formulaires font apparaître 'reCaptcha' comme prévu.
Si je désactive 'jGraphic Captcha Protection' et garde 'reCaptcha' activé avec 'reCaptcha' comme captcha par défaut
- L'erreur disparaît
- 'reCaptcha' réapparaît dans le module de connexion (normal car 'AuthCaptcha' est toujours activé)
- Les autres formulaires continuent de fonctionner comme prévu
DANS CETTE CONFIGURATION TOUT FONCTIONNE
Si je désactive 'jGraphic Captcha Protection' et garde 'reCaptcha' activé avec 'reCaptcha' comme captcha par défaut
Si j'arrive à bien comprendre ce fonctionnement, il y a un lien direct avec le module qui en fait, arrive à gérer le 'reCaptcha' mais les autres plugins...
Bizarre non ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question10 mars 2023 à 05:20
Bonjour Pitet
Et bien je ne peux que te remercier du temps que tu as pris pour étudier ce "petit problème".
Le plugin "jGraphics" semble avoir été arrêté car aucune mise à jour depuis plus de 2 ans (ce n'est que supposition bien entendu). Je me trompe peut-être...
Je ne sais plus exactement quels étaient les autres plugins et les autres erreurs mais d'autres plugins avaient générés d'autres messages d'erreurs...
Je recherche un autre plugin pour éviter d'utiliser un produit "Google" (oui, je sais ! Ce n'est qu'une impression personnelle mais je ne rentre pas dans les détails ;-) )
Je vais tester la solution de modification du source php comme tu l'as indiqué ne serait-ce que pour tester ce plugin et je vais essayer d'en trouver d'autres (gratuits si possible...).
Merci encore ! :-)
.