SilentShield
← Tilbage til bloggen
ReleaseAJAXOpenCart

SilentShield 2.6: formularer sendt med klik og AJAX kontrolleres nu

Marc Wagner·8. oktober 2026·3 min læsning

SilentShield 2.6 lukker et hul, der kostede en butik tilmeldinger i checkout: formularer, der sendes med et knapklik og AJAX i stedet for en almindelig submit, blev ikke meldt til os. Denne artikel gennemgår, hvad der skete, hvad der ændres, og hvad du skal gøre. Den fulde liste findes i ændringsloggen.

Hvad der gik galt

Widgetten måler skrivning og musebevægelse og melder resultatet, når en besøgende sender en formular. Den lyttede efter browserens submit-hændelse. Nogle butikker udløser aldrig den hændelse. OpenCart 3-checkout indlæser for eksempel tilmeldingstrinnet via AJAX og sender det med en almindelig knap og jQuery.ajax.

Resultatet: din server spurgte /v1/verify om en besøgende, som vi kun havde modtaget den første sidehændelse for. Uden skrive- og musedata var afgørelsen „suspicious“, og tilmeldingen mislykkedes for et rigtigt menneske. Formularen var beskyttet, men beskyttelsen kunne ikke se den besøgende.

Hvad der ændres

Med version 2.6 genkender widgetten også denne type indsendelse. Den ser på den anmodning, der bærer behavior_nonce. Forlader anmodningen siden uden en submit-hændelse, og er formularen endnu ikke kontrolleret, holder widgetten den et øjeblik tilbage, melder indsendelsen med de indsamlede skrive- og musedata og sender anmodningen, når afgørelsen foreligger. Kommer der ingen besked inden for 15 sekunder, sendes anmodningen alligevel, og din server afgør som hidtil.

Alt andet er, som det var: formularer med almindelig submit, anmodninger uden nonce og almindelige sideindsendelser berøres ikke.

Sådan testede vi det

Vi genopbyggede OpenCart-checkout i vores lokale testmiljø med ægte jQuery og lod en simuleret kundeserver kalde /v1/verify. Med kontakten slået fra blev formularen med klik og AJAX afvist (HTTP 403, „suspicious“, årsagerne NO_TYPING_PAUSES og NO_MOUSE_MOVEMENT). Med kontakten slået til blev den samme besøgende accepteret (HTTP 200, „human“). En formular med almindelig submit, en almindelig sideindsendelse og en anmodning uden nonce opførte sig ens med kontakten slået til og fra.

Det bør du vide

  • Den dækker anmodninger lavet med XMLHttpRequest, hvilket omfatter jQuery.ajax. Formularer sendt med fetch() er endnu ikke dækket, bortset fra WooCommerce blok-checkout, som har sin egen håndtering.
  • Din kontrol på serveren ændres ikke. Bliv ved med at kalde /v1/verify med nonce.

Integrationsvejledning

Klar til at droppe CAPTCHA?

Begynd at beskytte dine formularer — usynligt. Intet kreditkort påkrævet.