{"id":90113,"date":"2026-10-16T08:20:00","date_gmt":"2026-10-16T06:20:00","guid":{"rendered":"https:\/\/codescriptum.pl\/blog\/falszywe-zamowienia-w-sklepie-woocommerce\/"},"modified":"2026-10-16T08:20:00","modified_gmt":"2026-10-16T06:20:00","slug":"falszywe-zamowienia-w-sklepie-woocommerce","status":"publish","type":"post","link":"https:\/\/codescriptum.pl\/blog\/falszywe-zamowienia-w-sklepie-woocommerce\/","title":{"rendered":"Fa\u0142szywe zam\u00f3wienia w sklepie WooCommerce - jak zatrzyma\u0107 boty testuj\u0105ce karty"},"content":{"rendered":"<p>Seria zam\u00f3wie\u0144 na ma\u0142e kwoty, z przypadkowymi danymi i odrzuconymi p\u0142atno\u015bciami to najcz\u0119\u015bciej testowanie kart: bot sprawdza w Twoim sklepie, kt\u00f3re skradzione karty dzia\u0142aj\u0105. Zatrzymasz to warstwami: ochron\u0105 formularza zam\u00f3wienia, limitem pr\u00f3b, narz\u0119dziami antyfraudowymi operatora p\u0142atno\u015bci i wy\u0142\u0105czeniem tego, czego sklep nie potrzebuje, np. otwartej rejestracji kont.<\/p>\n<h2>Jak rozpozna\u0107 fa\u0142szywe zam\u00f3wienia i testowanie kart?<\/h2>\n<p>Po nag\u0142ym wzro\u015bcie liczby zam\u00f3wie\u0144 nieudanych lub oczekuj\u0105cych na p\u0142atno\u015b\u0107, z\u0142o\u017conych w kr\u00f3tkim czasie, na ma\u0142e kwoty i z danymi, kt\u00f3re nie maj\u0105 sensu. Pojedyncze nieop\u0142acone zam\u00f3wienie to zwykle porzucona p\u0142atno\u015b\u0107, a nie atak.<\/p>\n<ul>\n<li>dziesi\u0105tki zam\u00f3wie\u0144 ze statusem Nieudane lub Oczekuje na p\u0142atno\u015b\u0107 w ci\u0105gu godziny, cz\u0119sto w nocy,<\/li>\n<li>w notatkach zam\u00f3wie\u0144 kolejne odmowy karty, a w panelu operatora seria odrzuconych transakcji,<\/li>\n<li>zam\u00f3wienia na najta\u0144szy produkt, darowizn\u0119 albo produkt z cen\u0105 wpisywan\u0105 przez klienta,<\/li>\n<li>przypadkowe imiona i nazwiska, adresy e-mail z losowych znak\u00f3w, ten sam adres przy r\u00f3\u017cnych nazwiskach,<\/li>\n<li>w polu atrybucji zam\u00f3wienia brak danych o pochodzeniu albo jedna ods\u0142ona w sesji, co mo\u017ce oznacza\u0107, \u017ce zam\u00f3wienie z\u0142o\u017cono skryptem z pomini\u0119ciem stron sklepu.<\/li>\n<\/ul>\n<p>Prawdziwy klient po odmowie karty zwykle pr\u00f3buje innej metody p\u0142atno\u015bci, ponawia zam\u00f3wienie z tymi samymi danymi albo pisze do sklepu. Bot zachowuje si\u0119 inaczej: w kolejnych zam\u00f3wieniach zmienia karty, nazwiska i adresy, a odst\u0119py mi\u0119dzy pr\u00f3bami liczy si\u0119 w sekundach.<\/p>\n<p>Je\u015bli zam\u00f3wienia czekaj\u0105 na p\u0142atno\u015b\u0107, a klienci twierdz\u0105, \u017ce zap\u0142acili, to inny problem. Opisujemy go we wpisie <a href=\"\/blog\/woocommerce-zamowienie-oczekuje-na-platnosc\/\">klient zap\u0142aci\u0142, a zam\u00f3wienie oczekuje na p\u0142atno\u015b\u0107<\/a>.<\/p>\n<h2>Dlaczego boty wybieraj\u0105 akurat Tw\u00f3j sklep?<\/h2>\n<p>Bo formularz zam\u00f3wienia z p\u0142atno\u015bci\u0105 kart\u0105 jest dla nich darmowym testerem: ka\u017cda pr\u00f3ba daje odpowied\u017a banku, czy karta dzia\u0142a. Im \u0142atwiej z\u0142o\u017cy\u0107 zam\u00f3wienie bez weryfikacji, tym \u0142atwiejszy cel.<\/p>\n<h3>Otwarte zam\u00f3wienie bez ochrony<\/h3>\n<p>Zam\u00f3wienie jako go\u015b\u0107, bez ochrony przed botami i bez limit\u00f3w, mo\u017cna wysy\u0142a\u0107 skryptem setki razy. Boty cz\u0119sto omijaj\u0105 sam\u0105 stron\u0119 zam\u00f3wienia i wysy\u0142aj\u0105 \u017c\u0105dania bezpo\u015brednio do interfejsu sklepu (Store API), z kt\u00f3rego korzysta zam\u00f3wienie zbudowane z blok\u00f3w. Ochrona dodana tylko do wygl\u0105du formularza wtedy nie dzia\u0142a.<\/p>\n<h3>Tanie produkty i kwota dowolna<\/h3>\n<p>Produkty za kilka z\u0142otych, darowizny i produkty z cen\u0105 wpisywan\u0105 przez klienta pozwalaj\u0105 testowa\u0107 karty ma\u0142ymi kwotami, kt\u00f3rych w\u0142a\u015bciciel karty \u0142atwo nie zauwa\u017cy na wyci\u0105gu.<\/p>\n<h3>Zapisywanie kart i otwarta rejestracja<\/h3>\n<p>Je\u015bli ka\u017cdy mo\u017ce za\u0142o\u017cy\u0107 konto i doda\u0107 kart\u0119 w Moim koncie, bot sprawdza karty bez tworzenia zam\u00f3wie\u0144. W sklepie prawie nic nie wida\u0107, a odrzucenia rosn\u0105 u operatora. Otwarta rejestracja przyci\u0105ga te\u017c boty, kt\u00f3re zak\u0142adaj\u0105 konta do spamu, a maile powitalne na przypadkowe adresy psuj\u0105 reputacj\u0119 domeny.<\/p>\n<h3>S\u0142abe regu\u0142y antyfraudowe u operatora<\/h3>\n<p>Operatorzy p\u0142atno\u015bci maj\u0105 mechanizmy wykrywania atak\u00f3w, ale ich skuteczno\u015b\u0107 zale\u017cy od integracji i ustawie\u0144. Stara wtyczka bramki, kt\u00f3ra nie przekazuje operatorowi danych o kliencie i adresu IP, utrudnia rozpoznanie ataku.<\/p>\n<h2>Co zrobi\u0107 od razu, gdy atak trwa?<\/h2>\n<p>Najpierw ogranicz mo\u017cliwo\u015b\u0107 sk\u0142adania zam\u00f3wie\u0144 i powiadom operatora p\u0142atno\u015bci, a porz\u0105dki w zam\u00f3wieniach zr\u00f3b, gdy nowe pr\u00f3by przestan\u0105 nap\u0142ywa\u0107.<\/p>\n<ol>\n<li>Tymczasowo ukryj najta\u0144sze produkty, darowizny i produkty z dowoln\u0105 kwot\u0105.<\/li>\n<li>Na czas ataku wy\u0142\u0105cz zam\u00f3wienia jako go\u015b\u0107, a je\u015bli boty dodaj\u0105 karty w Moim koncie, wy\u0142\u0105cz zapisywanie kart.<\/li>\n<li>W\u0142\u0105cz ochron\u0119 formularza zam\u00f3wienia i limit pr\u00f3b (opis ni\u017cej).<\/li>\n<li>Zg\u0142o\u015b atak operatorowi p\u0142atno\u015bci: podaj przedzia\u0142 czasu, przyk\u0142adowe numery zam\u00f3wie\u0144 i transakcji oraz adresy IP z log\u00f3w serwera, popro\u015b o zaostrzenie regu\u0142 i zapytaj o zwrot op\u0142at za fa\u0142szywe transakcje.<\/li>\n<li>P\u0142atno\u015bci, kt\u00f3re przesz\u0142y, zwr\u00f3\u0107 jak najszybciej, \u017ceby unikn\u0105\u0107 spor\u00f3w i obci\u0105\u017ce\u0144 zwrotnych, a fa\u0142szywe zam\u00f3wienia anuluj i niczego nie wysy\u0142aj.<\/li>\n<\/ol>\n<h2>Jak zabezpieczy\u0107 zam\u00f3wienie przed botami na sta\u0142e?<\/h2>\n<p>Najlepiej dzia\u0142a po\u0142\u0105czenie kilku warstw: weryfikacji niewidocznej dla wi\u0119kszo\u015bci klient\u00f3w, limitu \u017c\u0105da\u0144 i regu\u0142 operatora. Pojedynczy filtr, np. blokada adres\u00f3w IP, zwykle nie wystarcza, bo boty zmieniaj\u0105 adresy.<\/p>\n<table>\n<thead>\n<tr>\n<th>Zabezpieczenie<\/th>\n<th>Co daje<\/th>\n<th>Na co uwa\u017ca\u0107<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Cloudflare Turnstile lub reCAPTCHA w zam\u00f3wieniu<\/td>\n<td>Odsiewa skrypty, a wi\u0119kszo\u015b\u0107 klient\u00f3w nie widzi \u017cadnej zagadki<\/td>\n<td>Weryfikacja musi dzia\u0142a\u0107 po stronie serwera i obejmowa\u0107 zam\u00f3wienie na blokach<\/td>\n<\/tr>\n<tr>\n<td>Limit \u017c\u0105da\u0144 zam\u00f3wienia (Store API)<\/td>\n<td>Ogranicza liczb\u0119 pr\u00f3b z jednego adresu w kr\u00f3tkim czasie<\/td>\n<td>Za serwerem proxy lub CDN trzeba poprawnie rozpoznawa\u0107 prawdziwe IP<\/td>\n<\/tr>\n<tr>\n<td>Narz\u0119dzia antyfraudowe operatora<\/td>\n<td>Blokuj\u0105 serie odrzuce\u0144 i podejrzane karty<\/td>\n<td>Wymagaj\u0105 aktualnej wtyczki bramki i przekazywania danych klienta<\/td>\n<\/tr>\n<tr>\n<td>Wtyczka antyfraudowa do WooCommerce<\/td>\n<td>Ocenia ryzyko i wstrzymuje podejrzane zam\u00f3wienia<\/td>\n<td>\u0179le ustawiona daje ma\u0142o ochrony albo blokuje prawdziwych klient\u00f3w<\/td>\n<\/tr>\n<tr>\n<td>Zamkni\u0119ta rejestracja kont<\/td>\n<td>Mniej fa\u0142szywych kont i spamu<\/td>\n<td>Konto mo\u017cna zak\u0142ada\u0107 przy zam\u00f3wieniu, je\u015bli jest potrzebne<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>WooCommerce ma wbudowany limit \u017c\u0105da\u0144 dla zam\u00f3wienia. W WooCommerce, Ustawienia, Zaawansowane, Funkcje w\u0142\u0105czysz go dla zam\u00f3wienia na blokach, a programista mo\u017ce dopasowa\u0107 limity filtrem. To dobre uzupe\u0142nienie ochrony formularza, bo dzia\u0142a tak\u017ce wtedy, gdy bot pomija stron\u0119 zam\u00f3wienia.<\/p>\n<div class=\"csb-note csb-note--tip\">\n<p>Nie musisz zmusza\u0107 klient\u00f3w do rozwi\u0105zywania obrazkowych zagadek. Turnstile w wi\u0119kszo\u015bci przypadk\u00f3w dzia\u0142a w tle, wi\u0119c chroni zam\u00f3wienie bez psucia konwersji. Po wdro\u017ceniu z\u0142\u00f3\u017c testowe zam\u00f3wienie na smartfonie i na komputerze, \u017ceby sprawdzi\u0107, czy weryfikacja nie blokuje prawdziwych klient\u00f3w.<\/p>\n<\/div>\n<h3>Fa\u0142szywe konta bez zam\u00f3wie\u0144<\/h3>\n<p>Je\u015bli sklep nie potrzebuje kont zak\u0142adanych w Moim koncie, wy\u0142\u0105cz t\u0119 opcj\u0119 i zostaw zak\u0142adanie konta przy zam\u00f3wieniu albo zam\u00f3wienia jako go\u015b\u0107 chronione weryfikacj\u0105. Usu\u0144 fa\u0142szywe konta i sprawd\u017a, czy \u017cadne z nich nie ma roli wy\u017cszej ni\u017c Klient.<\/p>\n<h3>Porz\u0105dki w danych po ataku<\/h3>\n<p>Fa\u0142szywe zam\u00f3wienia i konta za\u015bmiecaj\u0105 raporty, baz\u0119 klient\u00f3w i listy mailingowe. Usu\u0144 fa\u0142szywe adresy z narz\u0119dzia do wysy\u0142ki maili, \u017ceby nie psu\u0142y reputacji domeny, a por\u00f3wnuj\u0105c sprzeda\u017c z poprzednimi okresami, pomijaj dni ataku albo filtruj zam\u00f3wienia nieudane i anulowane.<\/p>\n<h2>Lista kontrolna po ataku<\/h2>\n<ul>\n<li>nowe pr\u00f3by usta\u0142y, a liczba odrzuce\u0144 u operatora wr\u00f3ci\u0142a do zwyk\u0142ego poziomu,<\/li>\n<li>zam\u00f3wienie jest chronione weryfikacj\u0105 i limitem, tak\u017ce na stronie zam\u00f3wienia z blok\u00f3w,<\/li>\n<li>w sklepie nie ma produkt\u00f3w z dowoln\u0105 kwot\u0105 bez minimum,<\/li>\n<li>wtyczka bramki p\u0142atno\u015bci jest zaktualizowana, a operator powiadomiony,<\/li>\n<li>fa\u0142szywe zam\u00f3wienia anulowane, op\u0142acone zwr\u00f3cone, fa\u0142szywe konta usuni\u0119te,<\/li>\n<li>sklep wysy\u0142a powiadomienie przy nag\u0142ym wzro\u015bcie liczby nieudanych zam\u00f3wie\u0144.<\/li>\n<\/ul>\n<p>Zabezpieczenie zam\u00f3wienia, aktualizacj\u0119 bramek p\u0142atno\u015bci i monitoring wdra\u017camy w ramach prac przy <a href=\"https:\/\/codescriptum.pl\/sklepy-woocommerce\/\">sklepach WooCommerce<\/a>. Ten problem jest jednym z naszej listy <a href=\"\/blog\/100-problemow-woocommerce\/\">100 problem\u00f3w z WooCommerce<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Seria zam\u00f3wie\u0144 na ma\u0142e kwoty, z przypadkowymi danymi i odrzuconymi p\u0142atno\u015bciami to najcz\u0119\u015bciej testowanie kart: bot sprawdza w Twoim sklepie, kt\u00f3re skradzione karty dzia\u0142aj\u0105. Zatrzymasz to warstwami: ochron\u0105 formularza zam\u00f3wienia,\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[],"class_list":["post-90113","post","type-post","status-publish","format-standard","hentry","category-sklepy-internetowe"],"_links":{"self":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/posts\/90113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/comments?post=90113"}],"version-history":[{"count":0,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/posts\/90113\/revisions"}],"wp:attachment":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/media?parent=90113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/categories?post=90113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/tags?post=90113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}