SilentShield
← Natrag na blog
IzdanjeAJAXOpenCart

SilentShield 2.6: obrasci poslani klikom i AJAX-om sada se provjeravaju

Marc Wagner·8. listopada 2026.·3 min čitanja

SilentShield 2.6 zatvara prazninu zbog koje je jedna trgovina izgubila registracije na blagajni: obrasci koji se umjesto običnog submita šalju klikom na gumb i AJAX-om nisu nam bili prijavljeni. Ovaj članak objašnjava što se dogodilo, što se mijenja i što trebate učiniti. Cjeloviti popis nalazi se u changelogu.

Što je pošlo po zlu

Widget mjeri tipkanje i pomicanje miša te prijavljuje rezultat kad posjetitelj pošalje obrazac. Slušao je preglednikov događaj submit. Neke trgovine taj događaj nikada ne pokreću. Blagajna OpenCarta 3, na primjer, učitava korak registracije AJAX-om i šalje ga običnim gumbom i jQuery.ajax.

Rezultat: vaš je poslužitelj preko /v1/verify pitao o posjetitelju za kojeg smo primili samo prvi događaj stranice. Bez podataka o tipkanju i mišu presuda je bila „suspicious”, a registracija nije uspjela stvarnoj osobi. Obrazac je bio zaštićen, ali zaštita nije vidjela posjetitelja.

Što se mijenja

Od verzije 2.6 widget prepoznaje i takvo slanje. Promatra zahtjev koji nosi behavior_nonce. Ako taj zahtjev napusti stranicu bez događaja submit, a obrazac još nije provjeren, widget ga na trenutak zadrži, prijavi slanje s prikupljenim podacima o tipkanju i mišu te pošalje zahtjev kad stigne presuda. Ako odgovor ne stigne u 15 sekundi, zahtjev se ipak šalje, a vaš poslužitelj odlučuje kao i prije.

Sve ostalo ostaje kako je bilo: obrasci s običnim submitom, zahtjevi bez noncea i obična slanja stranice ne diraju se.

Kako smo to testirali

Blagajnu OpenCarta ponovno smo izgradili u lokalnom testnom okruženju sa stvarnim jQueryjem i pustili simulirani klijentski poslužitelj da poziva /v1/verify. Kad je prekidač bio isključen, obrazac poslan klikom i AJAX-om bio je odbijen (HTTP 403, „suspicious”, razlozi NO_TYPING_PAUSES i NO_MOUSE_MOVEMENT). Kad je prekidač bio uključen, isti je posjetitelj prihvaćen (HTTP 200, „human”). Obrazac s običnim submitom, obično slanje stranice i zahtjev bez noncea ponašali su se jednako s uključenim i isključenim prekidačem.

Što je dobro znati

  • Obuhvaća zahtjeve izvršene s XMLHttpRequest, što uključuje jQuery.ajax. Obrasci poslani s fetch() još nisu obuhvaćeni, osim WooCommerce blokovne blagajne, koja ima vlastitu obradu.
  • Vaša provjera na strani poslužitelja ne mijenja se. I dalje pozivajte /v1/verify s nonceom.

Vodič za integraciju

Spremni za ukidanje CAPTCHA?

Počnite štititi svoje obrasce — nevidljivo. Kreditna kartica nije potrebna.