Formularze w WordPressie sÄ… zaprojektowane z pewnym zaÅ‚ożeniem. ZaÅ‚ożenie brzmi tak: po drugiej stronie ekranu siedzi czÅ‚owiek, który czasem jest niecierpliwy, czasem nieuważny, czasem próbuje wysÅ‚ać spam. Pod to projektuje siÄ™ wszystkie mechanizmy obrony — captcha, honeypot, rate limiting po IP, walidacja pól, wymóg zgody RODO, opóźnienia przed pierwszym klikniÄ™ciem „wyÅ›lij”. To wszystko dziaÅ‚a caÅ‚kiem dobrze, dopóki po drugiej stronie faktycznie jest czÅ‚owiek.

W 2026 po drugiej stronie coraz częściej nie jest czÅ‚owiek, tylko agent AI dziaÅ‚ajÄ…cy w imieniu czÅ‚owieka. I obrona, która byÅ‚a skuteczna przeciwko spamowi, przeciwko temu agentowi nie zawsze pasuje. CaptchÄ™ agent omija coraz częściej, bo dostawcy captch nie nadążajÄ… za modelami wizyjnymi. Honeypot dziaÅ‚a, dopóki agent nie widzi DOM-u — a wiÄ™kszość agentów widzi. Rate limiting po IP zawodzi, kiedy agent odpowiada na zapytania tysiÄ…ca użytkowników dziennie z jednego centrum danych. Wymóg zgody RODO jest pytaniem, na które agent potrafi kliknąć „tak” szybciej niż czÅ‚owiek zdąży zrozumieć, co akceptuje.

W poprzednim wpisie koncepcyjnym pokazałem, że agent staje się nowym rodzajem aktora w architekturze strony — ani użytkownikiem, ani botem, ale pośrednikiem działającym z autoryzacji użytkownika. Ten wpis pokazuje, co to znaczy konkretnie dla formularzy w Divi 5, dla koszyka i checkoutu w WooCommerce, i dla systemów rezerwacji. Gdzie są dziury, których wcześniej nie było. Co można załatać teraz, a co wymaga architektonicznych decyzji.

Wpis jest praktyczny, ale pod jedną zasadą — obrona przed spamem i obrona przed niezamierzonymi akcjami agenta to nie jest to samo. Obrona przed spamem zakłada, że ruch jest szkodliwy. Obrona przed niezamierzonymi akcjami agenta zakłada, że ruch jest dobry w intencji, ale może być źle skierowany, źle zinterpretowany albo wykorzystany. To dwie różne rozmowy i trzeba je prowadzić osobno.

Obszar pierwszy — formularze w Divi 5 i ekosystemie WordPressa

Zacznijmy od tego, czym są dziś formularze na stronach Divi 5. Większość właścicieli używa jednego z dwóch podejść. Pierwsze — natywny moduł Contact Form Divi. Drugie — zewnętrzna wtyczka formularzy osadzona w Divi przez moduł Code albo shortcode. W praktyce najczęściej spotyka się miks: prosty formularz kontaktowy w natywnym module Divi, bardziej zaawansowane (zapis na wydarzenie, formularz zgłoszeniowy, quiz) w wtyczce zewnętrznej.

Najpopularniejsze wtyczki formularzy w ekosystemie WordPress:

Moduł Contact Form Divi 5 — natywny, prosty, generuje pola z etykietami. Podstawowy captcha, podstawowy honeypot. Dla prostych formularzy kontaktowych wystarczający.

Contact Form 7 — najpopularniejszy na świecie, darmowy, minimalistyczny. Wymaga ręcznej konfiguracji, ale ma ogromny ekosystem rozszerzeń, w tym do captchy, honeypota, integracji z zewnętrznymi systemami.

Gravity Forms — komercyjny, jeden z najbardziej rozbudowanych. Warunkowa logika pól, zaawansowane integracje, dobra obsługa zgodności RODO. Domyślnie oferuje kilka warstw zabezpieczeń.

Fluent Forms — nowszy, lżejszy, rosnąca popularność. Wizualny kreator, szybkie wdrożenie, wbudowane zabezpieczenia antyspamowe.

WPForms — popularny w USA, obecny też w Polsce. Wizualny kreator, dobre integracje z e-mail marketingiem.

Formidable Forms — mniej popularny w Polsce, ale silny w zastosowaniach typu kalkulatory, rejestratory, quizy.

Każda z tych wtyczek była projektowana pod ochronę przed spamem, nie pod kontrolę nad tym, co zrobi agent. W praktyce oznacza to kilka konkretnych problemów.

Problem pierwszy — captcha jako ostatnia linia obrony. WiÄ™kszość stron polega na captchy (Google reCAPTCHA v2 albo v3, hCaptcha, Cloudflare Turnstile) jako głównym mechanizmie odróżniajÄ…cym bota od czÅ‚owieka. Problem: agenci AI w 2025-2026 coraz częściej potrafiÄ… rozwiÄ…zać captcha wizualnÄ… przez wÅ‚asny model wizyjny. Nie każda próba siÄ™ udaje, ale odsetek skutecznoÅ›ci roÅ›nie szybko. Reklama „niezawodny captcha” coraz bardziej rozchodzi siÄ™ z rzeczywistoÅ›ciÄ….

Co zamiast? Dwie warstwy. Pierwsza — captcha inwisible (reCAPTCHA v3, Turnstile) jako warstwa informacyjna, nie blokująca. Druga — wymóg potwierdzenia akcji drugim kanałem (email, SMS) dla wszystkich zgłoszeń, które mają konsekwencje. Agent może pokonać captcha. Agent nie pokona tego, że człowiek musi kliknąć link aktywacyjny w swojej skrzynce.

Problem drugi — brak rozpoznania, że żądanie przyszło od agenta. Większość formularzy nie odróżnia wizyty ludzkiej od agentowej. Dostają żądanie HTTP i zakładają, że człowiek. Agent, który wypełnia formularz w ChatGPT Atlas albo Claude in Chrome, wysyła żądanie z normalnymi nagłówkami przeglądarki — dla strony jest nieodróżnialny od człowieka siedzącego przy laptopie.

Co zrobić? Dodać sygnały, które pomagają odróżnić. Analiza czasu wypełniania formularza (człowiek średnio potrzebuje 20-40 sekund na formularz kontaktowy, agent robi to w 2 sekundy). Analiza ścieżki myszy, jeśli strona to zapisuje. Sprawdzenie nagłówka Sec-CH-UA i innych client hints, które w niektórych agentowych przeglądarkach są ustawione inaczej. To nie są silne sygnały — ale razem tworzą profil, który pomaga systemowi oszacować, czy żądanie wymaga dodatkowej weryfikacji.

Problem trzeci — zgody i pola wymagane. JeÅ›li formularz ma checkbox „zgadzam siÄ™ na regulamin”, agent zaznaczy go bez zastanowienia, bo reprezentuje użytkownika, który mu zleciÅ‚ wypeÅ‚nienie formularza. To z perspektywy prawa zgoda autoryzowana, ale z perspektywy praktycznej — czasem kÅ‚opotliwa. W wczeÅ›niejszej serii o dostÄ™pnoÅ›cipokazywaÅ‚em, że dobre formularze majÄ… jasno opisane konsekwencje każdej zgody — to zyskuje nowy wymiar, kiedy odbiorcÄ… tego opisu jest agent, który ma podjąć decyzjÄ™ w ciÄ…gu sekund.

Praktyka dla Divi 5. W natywnym module Contact Form Divi, w ustawieniach pola → Advanced, możesz dodać custom field required_confirmation albo podobny — i użyć go jako flagi w hooku WordPressowym, który wysyÅ‚a email potwierdzajÄ…cy. W zewnÄ™trznych wtyczkach (Gravity Forms, Fluent Forms) ta logika jest zazwyczaj wbudowana jako „double opt-in” albo „confirmation email”. Włączenie tego to najprostszy krok, który podnosi poziom ochrony przed niezamierzonymi zgÅ‚oszeniami agentowymi — niezależnie od tego, czy agent byÅ‚ „zaufany”, czy nie.

Obszar drugi — WooCommerce checkout w świecie, w którym agent kupuje szybciej niż człowiek

WooCommerce jest najpopularniejszą platformą e-commerce na WordPressie. Divi 5 ma natywne integracje z WooCommerce — moduły dla koszyka, checkoutu, archiwów produktów, pojedynczej strony produktu. Wszystko to było projektowane pod człowieka-klienta. W 2026 na scenę wchodzi agent-klient, i okazuje się, że większość domyślnych ustawień WooCommerce nie pasuje.

Po pierwsze — koszyk i guest checkout. WooCommerce domyÅ›lnie pozwala na zakup bez konta. To jest Å›wietne dla konwersji ludzkich klientów, ale dla agenta oznacza, że nie ma żadnej warstwy autoryzacji miÄ™dzy „wszedÅ‚ na stronÄ™” a „zÅ‚ożyÅ‚ zamówienie”. Agent może dodać produkt do koszyka, przejść do checkoutu, wprowadzić dane użytkownika i potwierdzić zakup — wszystko w ciÄ…gu sekund, bez żadnego Å›ladu w systemie użytkownika, którego reprezentuje. JeÅ›li coÅ› poszÅ‚o nie tak, trudno to odtworzyć.

Co zrobić? Dla sklepów, które mają choćby niewielkie ryzyko niezamierzonych zamówień (wysokie wartości pojedynczego produktu, produkty limitowane, dostępność stanowiąca wartość samą w sobie), warto rozważyć: (a) wyłączenie guest checkout dla zamówień powyżej określonej wartości, (b) wymóg potwierdzenia emailem przed finalizacją zamówienia, (c) opóźnienie realizacji zamówienia o X godzin, żeby dać użytkownikowi okno na anulowanie. Wszystkie trzy są dostępne w podstawowym WooCommerce albo przez proste wtyczki.

Po drugie — szybkie checkout z zapisanymi danymi. JeÅ›li użytkownik jest zalogowany, WooCommerce pokazuje mu checkout wypeÅ‚niony danymi. Agent, dziaÅ‚ajÄ…cy w imieniu tego zalogowanego użytkownika, widzi tÄ™ samÄ… wypeÅ‚nionÄ… formÄ™ i może jÄ… po prostu potwierdzić. W perspektywie UCP i agentic commerce to jest dokÅ‚adnie zamierzony scenariusz — agent finalizuje transakcjÄ™ bez klikania po dwudziestu polach. Ale z perspektywy bezpieczeÅ„stwa to oznacza, że pomiÄ™dzy „agent otworzyÅ‚ stronÄ™” a „zamówienie potwierdzone” nie ma żadnego aktywnego potwierdzenia ze strony użytkownika.

Granica, którą warto tu wyznaczyć, jest prosta: akcje o wartości poniżej X są OK do zautomatyzowania, akcje powyżej X wymagają potwierdzenia człowieka. Gdzie jest X — to pytanie biznesowe, nie techniczne. Dla sklepu z subskrypcjami cyfrowymi X może być wysokie (miesięczna subskrypcja za 49 zł — spoko, niech agent klika). Dla sklepu z elektroniką X może być 200 zł. Dla sklepu z meblami pod wymiar — każda transakcja powinna być potwierdzona.

Techniczna implementacja — WooCommerce pozwala na to przez filtry woocommerce_checkout_process albo przez wtyczki typu „order approval” (które wstrzymujÄ… zamówienie do momentu rÄ™cznej albo emailowej akceptacji). Å»adna z wbudowanych opcji WooCommerce nie jest zaprojektowana pod agentów, ale wszystkie te mechanizmy można wykorzystać do oddzielenia „akcje zautomatyzowane” od „akcje wymagajÄ…ce potwierdzenia”.

Po trzecie — stany magazynowe i ataki wyczerpywania zasobów. Agent, który w imieniu wielu użytkowników na raz próbuje kupić ten sam limitowany produkt (np. nowa generacja sprzętu w przedsprzedaży), może wyczerpać twoje stany magazynowe w ciągu sekund. To nie jest atak w klasycznym sensie — każdy użytkownik ma autentyczny zamiar zakupu. Ale efekt jest ten sam co atak: normalni użytkownicy nie zdążą. Coś, co nazywamy denialem-of-service, tylko bez złej intencji.

Mitygacje: rate limiting na poziomie konta (nie IP, bo agent może mieć różne IP), kolejkowanie zamówieÅ„ dla produktów limitowanych, wymóg potwierdzenia osobistego dla zakupów z produktami o statusie „hot”. WooCommerce nie ma tego wbudowanego, ale sÄ… wtyczki (WooCommerce Waitlist, WooCommerce Pre-Orders), które dajÄ… narzÄ™dzia. Warto je rozważyć, jeÅ›li sprzedajesz cokolwiek, co ma szansÄ™ szybko siÄ™ wyprzedać.

Po czwarte — checkout, który mówi agentowi za dużo. Default WooCommerce checkout zawiera informacje o całym koszyku, dostępnych metodach płatności, kodach rabatowych, możliwościach wysyłki. Dla agenta, który działa w imieniu użytkownika, to jest dobra sprawa — ma pełną informację do decyzji. Ale ta sama informacja dla nieautoryzowanego agenta (który tylko udaje, że reprezentuje użytkownika) jest mapą, po której można nawigować. W szczególności — wszystkie publicznie dostępne kody rabatowe, które są w HTML strony, agent może wyciągnąć i przetestować.

To nie jest dramatyczny problem — ale jest dobrym przykładem tego, że więcej informacji w HTML to nie zawsze lepiej, kiedy po drugiej stronie jest agent, który tę informację skanuje masowo. Przy konfiguracji checkoutu warto zastanowić się, co musi być w DOM, a co można przenieść do sesji serwerowej.

Obszar trzeci — rezerwacje i specyficzne wtyczki

Systemy rezerwacji w Divi 5 (Bookly, Amelia, Simply Schedule Appointments, WooCommerce Bookings) to nisza, ale ważna — bo to sÄ… rzeczy, które dla agenta sÄ… szczególnie atrakcyjne do automatyzacji. „Zarezerwuj mi wizytÄ™ u fryzjera na sobotÄ™” jest dokÅ‚adnie tym typem zapytania, pod które budowane sÄ… agenty konsumenckie. I to jest warstwa, w której domyÅ›lne zabezpieczenia wtyczek rezerwacyjnych sÄ… najsÅ‚absze.

Trzy najczęstsze dziury:

Brak weryfikacji, że osoba rezerwująca i osoba z danymi kontaktowymi to ta sama osoba. Agent wypełnia formularz rezerwacji w imieniu użytkownika. Wpisuje dane kontaktowe użytkownika. Potwierdza. System wysyła email z potwierdzeniem na adres podany w formularzu. Wszystko się zgadza. Ale gdzieś w tej ścieżce nie było żadnego momentu, w którym właściciel tego emaila aktywnie potwierdził, że chce tej rezerwacji. Mitygacja: zawsze wymóg potwierdzenia emailem (link aktywacyjny), zanim rezerwacja jest traktowana jako finalna. Większość wtyczek rezerwacyjnych ma tę opcję — warto sprawdzić i włączyć.

Brak limitów na liczbÄ™ rezerwacji z jednego konta. JeÅ›li wtyczka nie limituje tego, ile rezerwacji może zrobić jeden użytkownik w danym czasie, agent dziaÅ‚ajÄ…cy agresywnie może zarezerwować wszystkie wolne terminy na tydzieÅ„. Nie dla siebie — dla „swojego użytkownika”, który w rzeczywistoÅ›ci nie zdaje sobie sprawy, co agent wÅ‚aÅ›nie zrobiÅ‚. Mitygacja: limit liczby aktywnych rezerwacji na użytkownika (w każdej z wymienionych wtyczek da siÄ™ to ustawić).

Brak dzienników i audytu. Większość wtyczek rezerwacyjnych zapisuje minimum informacji o tym, kto dokonał rezerwacji. Imię, email, telefon. Ale nie — user-agent, IP, ścieżka kliknięć, czas wypełniania. W świecie, w którym 30% rezerwacji może być wykonywanych przez agentów, brak tych danych oznacza, że nie jesteś w stanie nawet wsteczniezrozumieć, co się działo. Warto włączyć pełne logowanie — a jeśli wtyczka go nie oferuje, rozważyć hook do logu zewnętrznego.

Co z tego wynika

W filarze 4 — warstwie działania — Divi 5 jako builder nie jest głównym czynnikiem. Główne są wtyczki, które obsługują formularze, koszyk, rezerwacje. I każda z tych kategorii ma w 2026 ten sam problem: została zaprojektowana pod świat, w którym nie było agentów. Teraz są, a większość mechanizmów obrony, które działały przeciwko spamowi, nie działa przeciwko agentowi, który ma autoryzację użytkownika, cierpliwość zera sekund i skalę tysiąca równoległych sesji.

Trzy rzeczy, które warto zrobić w najbliższym tygodniu, jeśli twoja strona ma formularze albo sklep:

Po pierwsze — włącz podwójne potwierdzenie. Dla każdego formularza o konsekwencjach (kontakt, zapis, rezerwacja, zakup powyżej X zł) wymagaj kliknięcia linku w emailu przed finalizacją. Agent nie ma dostępu do skrzynki pocztowej użytkownika w taki sam sposób, jak sam użytkownik. Bariera niska, skuteczność wysoka.

Po drugie — rozdziel akcje zautomatyzowane od akcji wymagajÄ…cych decyzji czÅ‚owieka. Zdecyduj, gdzie przebiega twoja granica. MaÅ‚e kwoty, rutynowe zgÅ‚oszenia — OK, niech agent klika. Duże kwoty, nieodwracalne decyzje — zawsze wymagaj aktywnego potwierdzenia od czÅ‚owieka. Nawet jeÅ›li agent jest „zaufany”.

Po trzecie — zacznij zbierać dane. User-agent, czas wypełniania, ścieżka kliknięć. Za rok, kiedy ruch agentowy wzrośnie, te dane pozwolą ci zrozumieć, co się dzieje na twojej stronie. Bez nich będziesz w ciemności.

To jest ostatnia sekcja tego konkretnego pogłębienia. Kolejny wpis koncepcyjny w serii to filar piąty — tożsamość i zaufanie. Jest to warstwa, która wchodzi głębiej w pytania z tego wpisu: kto to właściwie jest ten agent, który składa zamówienie w twoim sklepie, i czy rzeczywiście reprezentuje tego użytkownika, za którego się podaje. Pytanie fundamentalne, bo bez odpowiedzi na nie, wszystkie mitygacje z filaru 4 są tylko hackami, które działają dopóki atakujący jest leniwy.