Historique des modifications — PrestaWard Captcha
Ce journal des modifications résume, version par version, l'impact pour les boutiques et les équipes de commerce électronique.
0.2.7
- Nouveau : mode local par formulaire. La newsletter, le formulaire de contact et les notifications de disponibilité peuvent être protégés uniquement par des contrôles locaux (horodatage signé, champ piège, délai minimum d’envoi de 4 secondes et limite d’envois), sans charger aucun script d’un fournisseur ni nécessiter de clés. Chaque formulaire conserve son mode (Désactivé, Observation ou Protection) et ne passe en mode Protection qu’après avoir réussi l’autotest en mode Observation. Ce mode est moins efficace contre les bots ciblés qu’un fournisseur et n’est jamais proposé pour l’accès, l’inscription, la commande, la récupération de mot de passe, le Back Office ni les commentaires. Les statistiques indiquent le nombre d’envois de chaque formulaire qui ont été vérifiés en local. Une page mise en cache intégralement depuis plus de six heures peut refuser l’envoi ; il suffit de la recharger pour résoudre le problème.
- Nouveau : domaines de messagerie bloqués. Une liste que vous rédigez vous-même (une règle par ligne, un domaine exact ou un caractère générique pour ses sous-domaines, jusqu’à 100 règles) s’applique à l’inscription des clients, y compris lors de l’achat, ainsi qu’à la newsletter. La vérification s’effectue avant de consulter le fournisseur et un e-mail correspondant est rejeté avec un message neutre qui ne révèle pas la liste. Dans la rubrique « Observation », seul ce qui aurait été rejeté est enregistré. Ni l’e-mail ni son domaine ne sont conservés : uniquement un compteur et un événement sans données personnelles pour chaque rejet.
- Nouveau : score minimum de reCAPTCHA v3 par formulaire. Si vous laissez ce champ vide, le score global est utilisé ; rien ne change donc tant que vous n’avez pas défini de valeur. Une valeur non valide rétablit le score global.
- Nouveau : thème (clair, foncé ou automatique) et taille (normale ou compacte) du widget reCAPTCHA v2 et Cloudflare Turnstile, y compris dans l’accès au Back Office. Les valeurs par défaut conservent l’aspect actuel ; reCAPTCHA v3 et v2 invisible n’affichent pas de widget. Dans reCAPTCHA, l’option « automatique » suit la palette de couleurs du visiteur.
- L’accès au Back Office utilise la même sauvegarde locale que les formulaires clients, uniquement lorsque le prestataire n’est pas disponible et que le serveur le confirme. Un prestataire ayant répondu « vérification échouée » continue d’être rejeté comme d’habitude. Chaque utilisation est enregistrée comme « fallback used » ; un commutateur par boutique le désactive et la suspension temporaire de l’opérateur est maintenue. L’écran d’accès ne reste jamais bloqué : le script signale l’échec au serveur, puis envoie le formulaire dans tous les cas. En cas de panne, cette protection est moins efficace face à un bot ciblé ; il est donc conseillé de conserver PrestaWard Authenticator comme deuxième barrière de sécurité. La protection contre les défaillances d’intégration n’affecte toujours pas le Back Office.
- Le panneau est divisé en onglets (Résumé, Surfaces, Fournisseur et Statistiques et journal) et ne prend en compte que l’onglet ouvert. L’onglet « Résumé » affiche le statut de chaque fournisseur, les vérifications réussies et échouées des dernières 24 heures, le statut effectif de chaque formulaire et, au maximum, une ligne d’alerte renvoyant vers l’onglet où le problème est résolu. Chaque onglet dispose de son propre bouton « Enregistrer » et n’enregistre que les paramètres qu’il affiche. Le panneau d’assistance de GO ON Agency dispose de son propre onglet, « Assistance », toujours situé en dernier, et l’état d’Integrity apparaît à la fin de tous les onglets.
- L’onglet « Surfaces » a été repensé : tableau de formulaires regroupé, sélecteur dont le texte n’est plus tronqué (il affichait auparavant « Desa ») et bouton « Enregistrer » situé en dehors de la carte de pause temporaire, sans la recouvrir. Le thème et la taille du widget se règlent dans une section de cet onglet.
- Corrige le message « formulaires activés sans avoir réussi leur test » : il s'affichait avec six formulaires alors que tous étaient désactivés. Désormais, seuls les formulaires qui ne sont pas en mode « Désactivé » sont pris en compte.
- Dans les nouvelles installations, les alertes par e-mail en cas d'incident sont désactivées jusqu'à ce que vous indiquiez une adresse, ce qui permet d'enregistrer la configuration dès le départ. Les installations mises à jour conservent leurs paramètres.
- Les e-mails relatifs aux incidents (ouverts et résolus) affichent le logo de votre boutique dans l’en-tête (avec le nom de la boutique comme texte alternatif) et un pied de page commun comportant le logo de GO ON Agency et la signature « PrestaWard by GO ON Agency », sans aucun lien ni coordonnées. Le logo du pied de page est un fichier provenant du module lui-même et mis à disposition depuis votre boutique.
- Corrige le fait que le corps de l'e-mail de signalement affichait des codes internes (par exemple «configuration_test» ou « opened ») : il indique désormais le formulaire, la cause et le statut avec des textes traduits dans les neuf langues.
- Corrige un bug qui, en cas d'appel au fournisseur, bloquait un formulaire du Front Office ; les appels au fournisseur depuis le script de la boutique sont désormais protégés de la même manière que ceux effectués pour accéder au Back Office.
- Aspect unifié du panneau dans les quatre modules PrestaWard : en-têtes de section, fiches de formulaire aux bordures neutres et blocs repliables communs, statistiques sur une seule ligne et un logo GO ON Agency plus grand dans l’en-tête. Le bouton principal adopte désormais une couleur unie conforme à l’identité visuelle de la marque, sans dégradé.
- Corrige le fait que, dans PrestaShop 9, le thème d'administration affichait les onglets soulignés comme des liens et les titres de section en majuscules. Les styles communs neutralisent cet effet uniquement au sein du panneau PrestaWard ; ainsi, PrestaShop 1.7 et 8 s'affichent comme auparavant.
- Corrige le fait que, dans PrestaShop 1.7, la feuille de style du module était ignorée lorsqu’elle était enregistrée avec le numéro de version dans l’adresse. Désormais, le fichier est vérifié et enregistré sans paramètres, de sorte que le nouveau thème s’affiche dans les versions 1.7, 8 et 9.
- Corrige le fait que, dans PrestaShop 9, la synchronisation avec Integrity vérifiait le jeton de sécurité à l’aide d’une méthode que PrestaShop 9 n’utilise pas et qui pouvait entraîner un rejet. La validation s’effectue désormais via le service de PrestaShop 9 ; dans PrestaShop 1.7 et 8, la vérification reste inchangée.
- Lorsque la connexion à Integrity ne peut pas être mise à jour pour le moment, le panneau affiche un seul message : la connexion enregistrée reste valide et une nouvelle tentative sera effectuée automatiquement. Les libellés de tous les onglets sont traduits dans les neuf langues.
- Le mode local dispose de sa propre limite d'envoi (de 1 à 50 toutes les 10 minutes). La mise à jour copie la limite actuelle de la sauvegarde ; ainsi, rien ne change après la mise à jour, et la modification de l'une des deux limites n'affecte plus l'autre.
- Corrige le fait que, dans PrestaShop 9, un captcha rejeté (par exemple, en raison d’une clé de site non valide dans la section « Protection ») n’affichait que le message générique de PrestaShop concernant l’employé ou le mot de passe. Le module affiche désormais son propre message dans toutes les versions ; PrestaShop 9 continue d’ajouter ensuite sa ligne générique.
- Corrige le problème de dégradation de la connexion à Integrity dans le contexte « toutes les boutiques » du Back Office ou lorsqu’une boutique autre que la première servait de test d’inscription. L’identité de l’installation est désormais lue comme une entité unique à partir de la portée globale (ou de la boutique qui la stocke) dans n’importe quel contexte ; la mise à jour transfère vers la portée globale une identité stockée dans une boutique sans la régénérer et, si elle ne peut pas être lue, l’état d’Integrity reste inchangé.
- L'en-tête du produit affiche à nouveau le logo de GO ON Agency et la mention « PrestaWard by GO ON Agency », sans liens.
- Tant que vous utilisez un fournisseur, son jeton reste obligatoire, exactement comme auparavant. Les surfaces détectées, les paramètres enregistrés et le contrat avec l’API Integrity ne changent pas, et les nouvelles méthodes de rejet ou de validation d’un formulaire (mode local et domaines bloqués) sont désactivées par défaut. La mise à jour ne modifie aucune table : elle ajoute uniquement de nouveaux paramètres dont les valeurs préservent le comportement actuel.
0.2.6
- Chaque formulaire dispose de son propre mode dans chaque boutique (Désactivé, Observation ou Protection), plutôt que d’un mode unique pour l’ensemble de la boutique avec des commutateurs. Vous pouvez ainsi protéger l’accès au Back Office et vous contenter d’observer le formulaire de contact. Un formulaire ne passe en mode Protection qu’après avoir réussi l’autotest en mode Observation, et la mise à jour conserve le comportement actuel de chaque boutique.
- Protection en cas de défaillance du fournisseur (formulaires clients en mode Protection) : si le serveur confirme que reCAPTCHA ou Turnstile ne peuvent pas être utilisés, le formulaire n’est accepté que s’il comporte un horodatage signé, un champ piège invisible vide, quelques secondes écoulées depuis le chargement de la page et un rythme normal d’envoi. Chaque utilisation est enregistrée dans les statistiques. Cette fonctionnalité est activée par défaut, elle peut être désactivée par boutique et l’accès au Back Office ne l’utilise jamais.
- Modification à prendre en compte : lorsque cette Protection est activée, un disjoncteur ouvert ne laisse plus passer toutes les expéditions, mais applique ces mêmes vérifications locales. Désactivez-la pour conserver le comportement précédent.
- Préfiltre sur le serveur (mode Protection) : rejette les bots manifestes avant d’interroger le fournisseur, uniquement sur preuves positives (champ piège renseigné, horodatage falsifié, envoi plus rapide que ce qu’une personne pourrait taper ou plus de 30 envois par formulaire et par visiteur toutes les 10 minutes). Il peut être désactivé par boutique.
- Les nouvelles vérifications ne conservent aucune donnée identifiable : les visiteurs sont regroupés dans un ensemble anonyme avec une clé qui change chaque jour, uniquement dans un compteur qui est vidé au bout de deux jours.
- Nouveau tableau de bord des statistiques : envois autorisés et bloqués par formulaire et par jour (7, 14 ou 30 jours), tendance par rapport à la période précédente, activations de la Protection en cas de panne du fournisseur, requêtes rejetées avant d’atteindre le fournisseur, un indicateur de faux positifs potentiels et, en mode Observation, les envois qui auraient été bloqués. Il ne contient ni adresses ni e-mails.
- Formulaires personnalisés : un formulaire qui n’est pas reconnu automatiquement (commande sur une seule page, formulaires du thème) peut être attribué, par boutique, à une surface protégée à l’aide d’un sélecteur CSS (jusqu’à dix). Le tableau de bord avertit que la Protection n’est effective que si le formulaire envoie ses données vers une page vérifiée par le module.
- Garde-fou contre les défaillances d’intégration (formulaires clients en mode Protection) : si un formulaire cesse d’envoyer le jeton au serveur alors que le fournisseur fonctionne (en raison d’une mise à jour du thème, d’un code JavaScript propre ou du cache de la page), ce formulaire passe automatiquement en Observation temporaire et vous recevez un incident ainsi qu’un e-mail. Il revient en mode Protection après 15 minutes sans incident et trois jetons vérifiés. L’accès au Back Office n’est jamais affecté et les bots manifestes continuent d’être rejetés.
- La mise à jour crée une petite table de compteur et de nouveaux paramètres avec des valeurs sûres, et conserve les paramètres et événements existants.
- Le panneau d’assistance et de diagnostic est placé juste avant la section Integrity, comme dans les autres modules PrestaWard, et dans le contexte « toutes les boutiques », il ne disparaît plus : cela indique qu’il faut sélectionner une boutique.
- Se synchronise avec Integrity à chaque ouverture du tableau de bord, via une requête en arrière-plan qui ne ralentit jamais le chargement de la page, à raison d’au maximum une fois par minute et par boutique.
0.2.5
- Corrige le service de connexion au Back Office dans PrestaShop 1.7. Dans PrestaShop 9, la vérification se limite au formulaire de connexion du Back Office et n’affecte pas l’API d’administration.
- Cesse de réessayer l’inscription à Integrity lorsque la clé d’enregistrement de la boutique change et affiche un message d’avertissement clair.
- Renouvelle la politique Integrity signée avant son expiration et conserve la politique en vigueur en cas d'échec du renouvellement.
- Corrige la clé de politique incluse afin qu’elle fonctionne sous PHP 7.1 et 7.2.
- Ajoute le panneau d’assistance de GO ON Agency en neuf langues, avec un rapport de diagnostic téléchargeable qui ne contient pas de données clients et n’est pas envoyé automatiquement. Seul un employé disposant d’une autorisation de modification et ayant sélectionné une boutique peut le télécharger.
- La durée de conservation des journaux techniques est désormais réellement appliquée (30 jours par défaut, configurable par boutique) : jusqu’à présent, ils étaient conservés indéfiniment. Chaque boutique supprime quotidiennement les journaux périmés, sans que cela n’affecte les incidents.
- Déclare la compatibilité à partir de PrestaShop 1.7.7.0, la version la plus ancienne testée.
0.2.4
- Corrige l'envoi du formulaire de connexion de l'administration via Turnstile après résolution du CAPTCHA, tout en conservant le bouton qui a déclenché l'envoi.
- Corrige le test d'inscription dans PrestaShop 9 et améliore le diagnostic et les nouvelles tentatives d'Integrity.
0.2.3
- Version non publiée, remplacée par la version 0.2.4.
0.2.2
- Empêche les autres gestionnaires JavaScript du thème de lancer l'envoi tant que le CAPTCHA est encore en attente.
- Élimine les états de chargement interminables et les requêtes effectuées avant de disposer d’un jeton valide.
- Affiche le CAPTCHA à l'ouverture des formulaires de connexion ou d'inscription qui étaient masqués lors du chargement de la page.
0.2.1
- Rétablit l'affichage du CAPTCHA avant la première tentative de connexion dans le Front Office et le Back Office.
- Empêche le cache d'afficher un CAPTCHA obsolète ou incorrect après la mise à jour du module.
- Remplace la fenêtre contextuelle par un avertissement accessible, visible et adapté aux appareils mobiles.
- Maintient les échecs du Back Office sur leur page de connexion avec un seul message d’erreur, sans page blanche.
0.2.0
- Ajoute Cloudflare Turnstile avec des identifiants chiffrés et une sélection indépendante par surface.
- Associe chaque jeton à son action protégée et renouvelle le défi en cas d'envois répétés.
- Améliore la détection des formulaires de connexion, d’inscription, de récupération de mot de passe, de commande, de newsletters et de notifications.
- Intègre une suspension opérationnelle temporaire, limitée et auditée, sans assouplir la politique Integrity signée.
- Mise à jour du panneau de configuration, de son design adaptatif et des traductions dans les neuf langues.
- Renforce la persistance « fail-closed » de la dernière politique Integrity vérifiée.
0.1.2
- Il distingue les pics de trafic automatisés des défaillances opérationnelles et évite les alertes en double.
- Ferme automatiquement les incidents liés au trafic automatisé après une période d'inactivité.
0.1.1
- Vérifications de disponibilité par surface avant de pouvoir activer la Protection.
- État de fonctionnement, historique des incidents, filtres, pagination et nettoyage.
- Télémétrie de santé ciblée et intégration avec le « heartbeat » d’Integrity.
0.1.0
- Première version candidate publique.
- Protection indépendante par surface et par boutique.
- Intégration avec reCAPTCHA v2 et v3.
- Inscription, politique signée et heartbeat de PrestaWard Integrity.
- Vérification des mises à jour et expérience visuelle commune de l'écosystème.
- Compatibilité multi-versions et catalogue complet en neuf langues.