Protezione reCAPTCHA & hCaptcha: configurazione e aiuto

Avvio rapido

  1. Carica e installa lo ZIP mprrecaptcha in "Module Manager".
  2. Fai clic su "Configure" per aprire Impostazioni CAPTCHA.
  3. Scegli "CAPTCHA Provider" e salva Chiave del sito e Chiave segreta corrispondenti.
  4. Seleziona le voci necessarie in "Protect Forms".
  5. Configura la soglia v3 e le chiavi di fallback se usi v3.
  6. Attiva "Enable CAPTCHA Protection" e salva.
  7. Verifica che gli invii validi riescano e che token mancanti o non validi blocchino ogni form selezionato; risolvi qualsiasi errore di integrazione prima di affidarti alla protezione.

Richiede PrestaShop 1.6 o successivo e PHP 7.1 o successivo.

Manuale di configurazione

Verifica della protezione prima della distribuzione

Il modulo può visualizzare widget Google reCAPTCHA v2, reCAPTCHA v3 o hCaptcha. Prova ogni form selezionato con un token valido, mancante e non valido: un widget visibile da solo non significa che il gestore del form rifiuti gli invii senza un token valido.

Nei form nativi selezionati di accesso, registrazione e newsletter, una risposta CAPTCHA mancante o non valida impedisce l’invio. Disattivare la protezione CAPTCHA lascia disponibile la registrazione nativa.

Installazione e configurazione

  1. Carica e installa lo ZIP mprrecaptcha tramite Moduli > "Module Manager".
  2. Fai clic su "Configure" per aprire Impostazioni CAPTCHA.
  3. Seleziona "CAPTCHA Provider".
  4. Ottieni le chiavi corrispondenti del provider per il dominio del negozio. Incolla Chiave del sito e Chiave segreta.
  5. Seleziona i form in "Protect Forms".
  6. Attiva "Enable CAPTCHA Protection" e fai clic su Salva.
  7. Prova token validi, mancanti e non validi su ogni form selezionato. Verifica che i controlli falliti impediscano l’operazione sottostante.

L’interruttore CAPTCHA è inizialmente disattivato. Rendering e verifica restano inattivi finché non sono presenti entrambe le chiavi principali. I campi segreti sono mascherati nel form delle impostazioni. Ti servono PHP cURL e una connessione HTTPS dal server all’endpoint di verifica del provider.

Configurazione di Impostazioni CAPTCHA

Impostazione Valore predefinito Quando modificarla
"Enable CAPTCHA Protection" Disattivato Attiva dopo aver salvato le chiavi e provato l’integrazione.
"CAPTCHA Provider" "Google reCAPTCHA v2 (checkbox)" Seleziona "Google reCAPTCHA v3 (invisible)" o hCaptcha se hai le chiavi corrispondenti. Un solo provider si applica a tutti i form selezionati.
Chiave del sito Vuoto Chiave pubblica per il provider selezionato e il dominio del negozio.
Chiave segreta Vuoto Chiave privata di verifica dalla stessa configurazione del provider.
"Protect Forms" "Contact form" e "Customer registration" Le altre opzioni sono "Customer login" e "Newsletter subscription". Selezionano le integrazioni incorporate nel modulo.
"reCAPTCHA v3 Threshold" 0.5 Inserisci un punteggio da 0.0 a 1.0. Una soglia più alta rifiuta più risposte con punteggio basso. Un valore vuoto torna a 0.5.
"Fallback to reCAPTCHA v2 after low v3 score" Disattivato Con v3, attiva una verifica con casella dopo un punteggio basso. Richiede entrambe le chiavi di fallback.
"Fallback v2 Site Key" Vuoto Chiave pubblica per una configurazione Google v2 con casella separata.
"Fallback v2 Secret Key" Vuoto Chiave privata per quella configurazione v2.
"Load provider script only when a protected form is present" Disattivato Attiva per caricare gli script tramite widget/iniettore. Lascia disattivato se il tema precedente richiede il caricamento globale nell’header.

Per esempio, scegli v3, seleziona "Contact form", "Customer registration" e "Newsletter subscription", e imposta la soglia a 0.6. Queste impostazioni applicano la protezione v3 ai form selezionati.

Per una prova del fallback v3, seleziona v3, usa una soglia più severa come 0.7, compila entrambe le chiavi v2 di fallback e attiva il relativo interruttore. Dopo un punteggio basso il modulo registra una verifica in sospeso per quel form. Il tentativo successivo usa la casella v2. Un fallback riuscito cancella questo stato in sospeso.

Verifica del posizionamento nel tema

Il modulo visualizza i widget tramite questi hook dei form dove il tema li chiama:

{hook h='displayContactContent'}
{hook h='displayCustomerLoginFormAfter'}
{hook h='displayCustomerAccountForm'}
{hook h='displayNewsletterRegistration'}

Usa anche displayGDPRConsent per il posizionamento di contatto pertinente e un iniettore nel piè di pagina per i form standard riconoscibili. Gli esempi includono #login-form, #customer-form, .block_newsletter form e controlli chiamati submitMessage, submitLogin o submitAccount.

Mantieni il widget all’interno del form. Aggiungere un hook di visualizzazione aggiunge solo un widget. Serve comunque un’integrazione funzionante della validazione lato server.

Puoi usare .mprrecaptcha-widget, .mprrecaptcha-contact, .mprrecaptcha-registration, .mprrecaptcha-newsletter e .mprrecaptcha-login come selettori nel CSS del tema.

Gli script dei provider usano:

https://www.google.com/recaptcha/api.js
https://www.google.com/recaptcha/api.js?render=YOUR_SITE_KEY
https://js.hcaptcha.com/1/api.js

Le risposte Google usano g-recaptcha-response. hCaptcha usa h-captcha-response. Il fallback v3 aggiunge mprcaptcha_v2_fallback=1.

Verifica della validazione server

Il form di contatto nativo viene controllato prima dell’invio. Una risposta CAPTCHA non valida impedisce l’invio del messaggio.

L’integrazione di contatto controlla anche submitMessage sul controller di contatto nativo durante actionFrontControllerSetMedia. Se la validazione fallisce, imposta il campo honeypot del contatto. Prova questo percorso con il modulo di contatto installato.

Per ogni form selezionato:

  1. Invia dati validi con una verifica valida e conferma il successo.
  2. Invia senza token e verifica che non vengano creati messaggi, accessi, account o iscrizioni.
  3. Ripeti con un token non valido.
  4. Prova il posizionamento su dispositivi mobili e desktop.
  5. Se usi il fallback v3, prova il primo tentativo fallito e il nuovo tentativo riuscito con la casella.

Se gli invii non validi riescono, il gestore del form richiede un intervento di integrazione. Cambiare provider o aggiungere un widget non risolve il problema.

Integrazione di un altro form

Non ci sono impostazioni pronte per checkout, reimpostazione della password, recensioni o form arbitrari di terze parti. Uno sviluppatore può usare renderForForm($formId) e verifyForForm($formId, $token, $ip) per un’integrazione personalizzata. Usa un ID del form stabile contenente solo lettere, cifre, trattini bassi o trattini. Il gestore deve rifiutare l’operazione quando la verifica restituisce false. La verifica restituisce true mentre la protezione del modulo è inattiva.

Risoluzione dei problemi e disinstallazione

Se un widget manca, controlla chiavi, attivazione, form selezionati, hook di visualizzazione, selettori e richieste ai provider. Se utenti reali non superano v3, controlla soglia e risposta del provider. Se la verifica fallisce per tutti, controlla dominio/tipo di chiave e accesso HTTPS/cURL del server. Usa la pagina "Integrity" del modulo per i controlli di installazione.

Disattiva "Enable CAPTCHA Protection" e salva per interrompere rendering e validazione CAPTCHA del modulo. Disinstalla tramite "Module Manager" per rimuovere il menu e le impostazioni salvate.

Compatibilità

Richiede PrestaShop 1.6 o successivo e PHP 7.1 o successivo.

Screenshot di riferimento

reCAPTCHA & hCaptcha Protection, Provider CAPTCHA sul contatto

reCAPTCHA & hCaptcha Protection, CAPTCHA di contatto nel negozio

reCAPTCHA & hCaptcha Protection, Widget CAPTCHA sul form

reCAPTCHA & hCaptcha Protection, Token invisibile reCAPTCHA v3

reCAPTCHA & hCaptcha Protection, CAPTCHA newsletter nel negozio

reCAPTCHA & hCaptcha Protection, Impostazioni CAPTCHA nel back office

Domande

1

Come evita il modulo di aggiungere un secondo widget nella pagina di contatto nativa?

Quando il modulo attivo contactform è registrato in displayContactContent, questo modulo non mostra il proprio widget in quell’hook. Può invece visualizzare il CAPTCHA di contatto tramite displayGDPRConsent sul controller di contatto. Controlla la pagina di contatto finale nel tuo tema dopo aver attivato la protezione.

Problemi noti

11

Invii ripetuti che riutilizzano una verifica scaduta

RisoltoAggiornato:
Risolto nella versione: 1.3.0
Un secondo invio o un nuovo tentativo potevano riutilizzare un token reCAPTCHA v3 già usato e non superare la convalida.

I clienti non possono creare un account

RisoltoAggiornato:
Risolto nella versione: 1.3.1
La registrazione dei clienti poteva fallire con il modulo attivo, anche quando il CAPTCHA non era richiesto per la registrazione.

Rafforzamento della sicurezza

RisoltoAggiornato:
Risolto nella versione: 1.3.2
Rafforzamento della sicurezza.

CAPTCHA di contatto fuori dal modulo

RisoltoAggiornato:
Risolto nella versione: 1.3.2
Il modulo di contatto nativo poteva mostrare il CAPTCHA all’esterno del modulo.

Rifiuto CAPTCHA della newsletter senza messaggio visibile

RisoltoAggiornato:
Risolto nella versione: 1.3.2
Su PrestaShop 1.6, un’iscrizione alla newsletter rifiutata poteva fallire senza mostrare l’errore CAPTCHA nel blocco newsletter.

Moduli aggiornati che perdono il CAPTCHA funzionante

RisoltoAggiornato:
Risolto nella versione: 1.3.2
I moduli caricati o aggiornati senza ricaricare la pagina potevano duplicare i widget o essere inviati senza il token di verifica corrente.

Moduli caricati dopo e verifiche di riserva non inizializzati

RisoltoAggiornato:
Risolto nella versione: 1.2.0
I moduli caricati dopo la pagina potevano non avere un CAPTCHA funzionante, e le verifiche di riserva per la newsletter potevano mancare.

Le etichette di amministrazione restano non tradotte

RisoltoAggiornato:
Risolto nella versione: 1.2.0
Alcune etichette di amministrazione restavano nella lingua di origine nonostante le traduzioni disponibili.

Il modulo non si carica su PHP 7.1

RisoltoAggiornato:
Risolto nella versione: 1.1.2
Il modulo poteva non caricarsi su PHP 7.1 perché i requisiti di installazione erano generati in modo errato.

Testi tradotti danneggiati

RisoltoAggiornato:
Risolto nella versione: 1.1.1
Alcune etichette di amministrazione tradotte mostravano testo danneggiato.

Widget CAPTCHA assenti nei moduli standard

RisoltoAggiornato:
Risolto nella versione: 1.0.15
I moduli di contatto e accesso potevano apparire senza il widget CAPTCHA, anche nel tema classico.

Richieste funzionalità

9

Implementato

reCAPTCHA v3 invisibile con alternativa v2 opzionale

Implementato
I form protetti usano verifiche invisibili reCAPTCHA v3 con una soglia di punteggio configurabile. Nelle impostazioni del modulo puoi attivare una verifica reCAPTCHA v2 con casella di controllo quando il punteggio scende sotto la soglia.

Protezione CAPTCHA dei moduli

Implementato
Configura la protezione CAPTCHA per i moduli di contatto, accesso, registrazione e newsletter.

Aggiornamenti dal back office

Implementato
Cerca e installa gli aggiornamenti del modulo dal back office.

Amministrazione multilingue

Implementato
Usa l’amministrazione del modulo in francese, tedesco, spagnolo, italiano e polacco.

Verifiche della configurazione richiesta

Implementato
Verifica quali impostazioni obbligatorie mancano prima di attivare l’integrazione.

CAPTCHA per moduli aggiuntivi

Implementato
I moduli compatibili possono proteggere ulteriori moduli di inserimento dati usando il provider e le impostazioni già configurati in questo modulo.

Supporto di Friendly Captcha v2

Implementato
Scegli Friendly Captcha v2 come provider CAPTCHA e usa facoltativamente il suo endpoint europeo.

Casella di controllo di riserva per reCAPTCHA v3

Implementato
Proponi una verifica reCAPTCHA v2 con casella di controllo dopo un punteggio v3 basso invece di rifiutare subito l’invio.

Caricamento condizionale degli script CAPTCHA

Implementato
Carica facoltativamente gli script del provider solo quando è presente un modulo protetto.

Registro modifiche

v1.3.02026-10-25

  • Addedadmin menu management via MenuInstaller for streamlined module setup
Versioni precedenti

v1.2.02026-10-15

  • AddedPS 9 / Hummingbird theme compatibility
  • AddedhCaptcha provider as an alternative to Google reCAPTCHA
  • Addedserver-side verification with configurable score threshold for v3
  • Improvederror messaging — failed verification now shows localised inline alert
  • FixedreCAPTCHA v3 token expiry on slow connections causing false negatives

v1.1.02026-06-23

  • Addedper-form enable/disable toggles: contact, login, registration, newsletter
  • AddedreCAPTCHA v2 invisible badge support
  • Fixedduplicate script injection when multiple protected forms on one page

v1.0.142026-05-27

  • Addedcomplete FR/DE/ES/IT/PL translations
  • FixedRender CAPTCHA on native contact forms

v1.0.152025-12-31

  • Maintenance release: refreshed bundled shared libraries and module icon

v1.0.02025-03-20

  • Initialrelease: Google reCAPTCHA v2 and v3 for PrestaShop forms
  • InitialContact form, account login, customer registration, and newsletter protection
  • InitialBack-office site key / secret key configuration
  • InitialCompatible with PS 1.7.x and PS 8.x

Demo

Prova il modulo completo prima di acquistare

Acquista la licenza in seguito e mantieni le tue impostazioni.

  • La tua demo di 30 giorni Provalo sul tuo negozio per 30 giorni dalla prima installazione.
  • Negozio demo pronto Esplora un negozio demo pronto nel tuo browser.
  • Senza registrazione Nessun account, e-mail o dominio del negozio richiesto.
Avvia il negozio demo

Scaricando, accetti le condizioni della demo e l’informativa sulla privacy.

Aprendo questa demo accetti i termini della demo e la politica sulla privacy.

Caricamento...
Torna su