SilentShield
← Torna al Blog
ReleaseAJAXOpenCart

SilentShield 2.6: i moduli inviati con un clic e AJAX ora vengono verificati

Marc Wagner·8 ottobre 2026·3 min lettura

SilentShield 2.6 chiude una lacuna che è costata a uno shop le registrazioni al checkout: i moduli inviati con il clic su un pulsante e AJAX invece di un normale submit non ci venivano segnalati. Questo articolo spiega che cosa è successo, che cosa cambia e che cosa dovete fare. L’elenco completo è nel changelog.

Che cosa è andato storto

Il widget misura la digitazione e i movimenti del mouse e segnala il risultato quando un visitatore invia un modulo. Era in ascolto dell’evento submit del browser. Alcuni shop non attivano mai quell’evento. Il checkout di OpenCart 3, ad esempio, carica il passaggio di registrazione via AJAX e lo invia con un semplice pulsante e jQuery.ajax.

Il risultato: il vostro server interrogava /v1/verify su un visitatore di cui avevamo ricevuto solo il primo evento di pagina. Senza dati di digitazione e del mouse il verdetto era «suspicious» e la registrazione falliva per una persona reale. Il modulo era protetto, ma la protezione non vedeva il visitatore.

Che cosa cambia

Con la versione 2.6 il widget riconosce anche questo tipo di invio. Osserva la richiesta che trasporta il behavior_nonce. Se tale richiesta lascia la pagina senza un evento submit e il modulo non è ancora stato verificato, il widget la trattiene per un istante, segnala l’invio con i dati di digitazione e del mouse raccolti e invia la richiesta quando arriva il verdetto. Se entro 15 secondi non arriva alcuna risposta, la richiesta viene comunque inviata e il vostro server decide, come prima.

Tutto il resto resta com’era: i moduli con un normale submit, le richieste senza nonce e i semplici invii di pagina non vengono toccati.

Come l’abbiamo testata

Abbiamo ricostruito il checkout di OpenCart nel nostro ambiente di test locale con il vero jQuery e abbiamo lasciato che un server cliente simulato chiamasse /v1/verify. Con l’interruttore disattivato, il modulo inviato con un clic e AJAX veniva respinto (HTTP 403, «suspicious», motivi NO_TYPING_PAUSES e NO_MOUSE_MOVEMENT). Con l’interruttore attivato, lo stesso visitatore veniva accettato (HTTP 200, «human»). Un modulo con un normale submit, un semplice invio di pagina e una richiesta senza nonce si comportavano allo stesso modo con l’interruttore attivato e disattivato.

Da sapere

  • Copre le richieste effettuate con XMLHttpRequest, compreso jQuery.ajax. I moduli inviati con fetch() non sono ancora coperti, ad eccezione del checkout a blocchi di WooCommerce, che ha una gestione propria.
  • La vostra verifica lato server non cambia. Continuate a chiamare /v1/verify con il nonce.

Guida all’integrazione

Pronto a eliminare i CAPTCHA?

Inizi a proteggere i suoi moduli — in modo invisibile. Nessuna carta di credito richiesta.