SilentShield
← Atpakaļ uz emuāru
LaidiensAJAXOpenCart

SilentShield 2.6: veidlapas, kas tiek sūtītas ar klikšķi un AJAX, tagad tiek pārbaudītas

Marc Wagner·2026. gada 8. oktobris·3 min lasīšana

SilentShield 2.6 novērš nepilnību, kuras dēļ kādam veikalam neizdevās reģistrācijas norēķinu laikā: veidlapas, kas tiek sūtītas ar pogas klikšķi un AJAX, nevis ar parasto submit, mums netika paziņotas. Šajā rakstā izskaidrots, kas notika, kas mainās un kas jums jādara. Pilns saraksts ir izmaiņu žurnālā.

Kas noticis nepareizi

Vidžets mēra rakstīšanu un peles kustības un ziņo rezultātu, kad apmeklētājs iesniedz veidlapu. Tas klausījās pārlūka notikumu submit. Daži veikali šo notikumu nekad neizraisa. Piemēram, OpenCart 3 norēķinu lapa reģistrācijas soli ielādē ar AJAX un nosūta ar vienkāršu pogu un jQuery.ajax.

Rezultāts: jūsu serveris ar /v1/verify vaicāja par apmeklētāju, par kuru mēs bijām saņēmuši tikai pirmo lapas notikumu. Bez rakstīšanas un peles datiem spriedums bija „aizdomīgs“, un īsta cilvēka reģistrācija neizdevās. Veidlapa bija aizsargāta, bet aizsardzība apmeklētāju neredzēja.

Kas mainās

Ar versiju 2.6 vidžets atpazīst arī šādu iesniegšanu. Tas vēro pieprasījumu, kas nes behavior_nonce. Ja šis pieprasījums atstāj lapu bez submit notikuma un veidlapa vēl nav pārbaudīta, vidžets to uz brīdi aizkavē, ziņo par iesniegumu kopā ar savāktajiem rakstīšanas un peles datiem un nosūta pieprasījumu, tiklīdz spriedums ir klāt. Ja 15 sekunžu laikā atbildes nav, pieprasījums tik un tā tiek nosūtīts, un lēmumu pieņem jūsu serveris, tāpat kā iepriekš.

Viss pārējais paliek nemainīgs: veidlapas ar parasto submit, pieprasījumi bez nonce un vienkārši lapas iesniegumi netiek skarti.

Kā mēs to pārbaudījām

Vietējā testa vidē mēs atjaunojām OpenCart norēķinu lapu ar īstu jQuery un ļāvām simulētam klienta serverim izsaukt /v1/verify. Ar izslēgtu slēdzi veidlapa, kas sūtīta ar klikšķi un AJAX, tika noraidīta (HTTP 403, „aizdomīgs“, iemesli NO_TYPING_PAUSES un NO_MOUSE_MOVEMENT). Ar ieslēgtu slēdzi tas pats apmeklētājs tika pieņemts (HTTP 200, „cilvēks“). Veidlapa ar parasto submit, vienkāršs lapas iesniegums un pieprasījums bez nonce uzvedās vienādi gan ar ieslēgtu, gan izslēgtu slēdzi.

Kas jāzina

  • Tas aptver pieprasījumus, kas veikti ar XMLHttpRequest, tostarp jQuery.ajax. Veidlapas, kas sūtītas ar fetch(), vēl netiek aptvertas, izņemot WooCommerce bloku norēķinu lapu, kurai ir sava apstrāde.
  • Jūsu servera puses pārbaude nemainās. Turpiniet izsaukt /v1/verify ar nonce.

Integrācijas ceļvedis

Gatavs atbrīvoties no CAPTCHA?

Sāciet aizsargāt savas formas — neredzami. Kredītkarte nav nepieciešama.