Wystawiasz na stronie formularz kontaktowy, żeby klienci mogli łatwo napisać. Kilka dni później Twoja skrzynka pełna jest ofert kryptowalut, linków do podejrzanych stron i pustych wiadomości. Witaj w świecie botów, dla których każdy niezabezpieczony formularz to zaproszenie.
Jak boty widzą Twój formularz
Bot nie „czyta" strony jak człowiek. Skanuje kod, znajduje pola formularza i wypełnia wszystkie naraz, najszybciej jak się da, po czym wysyła. Robi to tysiące razy, na tysiącach stron, automatycznie. Nie interesuje go, co sprzedajesz — interesuje go to, że formularz działa i można przez niego coś przepchnąć.
Klasyczna odpowiedź to CAPTCHA — te „zaznacz wszystkie światła" albo przepisywanie zniekształconych liter. Problem w tym, że one karzą przede wszystkim prawdziwych użytkowników. Część ludzi po prostu rezygnuje, zamiast męczyć się z układanką. Tracisz realne zapytania, żeby odstraszyć boty. Da się lepiej.
Warstwy obrony, których użytkownik nawet nie zauważy
Pułapka na boty (honeypot)
Dodajesz do formularza dodatkowe pole, ukryte przed ludźmi, ale widoczne w kodzie. Człowiek go nie wypełni, bo go nie widzi. Bot wypełni wszystko, co znajdzie — łącznie z pułapką. Jeśli to pole jest wypełnione, wiadomo, że to bot, i zgłoszenie ląduje w koszu. Zero utrudnień dla ludzi, skuteczna eliminacja automatów.
Pomiar czasu wypełniania
Człowiek potrzebuje kilku–kilkunastu sekund, żeby wypełnić formularz. Bot robi to w ułamku sekundy. Jeśli formularz zostaje wysłany w mniej niż, powiedzmy, trzy sekundy od załadowania — to niemal na pewno automat. Prosta reguła, która odsiewa znaczną część ruchu botów.
Najlepsze zabezpieczenie to takie, którego uczciwy użytkownik w ogóle nie zauważa. Cała walka z botami dzieje się w tle, a człowiek po prostu wysyła wiadomość i dostaje odpowiedź.
Token bezpieczeństwa (ochrona przed CSRF)
Serwer generuje unikalny, jednorazowy token i osadza go w formularzu. Przy wysyłce sprawdza, czy token się zgadza. Dzięki temu zgłoszenie musi pochodzić z Twojej strony, a nie z obcego skryptu, który podszywa się pod formularz z zewnątrz.
Ograniczenie liczby zgłoszeń
Nawet jeśli bot przejdzie wcześniejsze warstwy, możesz ograniczyć, ile razy z jednego adresu można wysłać formularz w danym czasie. Człowiek nie wysyła pięćdziesięciu zapytań na godzinę — bot owszem. Limit ucina masowe nadużycia.
Walidacja i czyszczenie danych
Każde pole trzeba sprawdzić i oczyścić, zanim cokolwiek z nim zrobisz. To chroni nie tylko przed śmieciowymi danymi, ale i przed próbami wstrzyknięcia szkodliwej treści przez pola formularza — jedną z najstarszych sztuczek w sieci.
Każdy formularz, który oddajemy, ma te warstwy wbudowane od początku: pułapkę na boty, pomiar czasu, token bezpieczeństwa, limit zgłoszeń i pełną walidację. Bez CAPTCHA, bez utrudniania życia Twoim klientom. Ochrona dzieje się w tle.
Co możesz sprawdzić u siebie już teraz
Jeśli masz na stronie formularz i dostajesz spam, zadaj wykonawcy trzy pytania: Czy formularz ma ukrytą pułapkę na boty? Czy sprawdza, jak szybko został wypełniony? Czy dane są walidowane po stronie serwera, a nie tylko w przeglądarce?
Jeśli odpowiedź brzmi „nie wiem" albo „chyba nie" — Twój formularz najpewniej jest otwartą bramą. Zamknięcie jej nie wymaga irytujących zagadek dla użytkowników. Wymaga tylko kilku warstw, które działają, zanim ktokolwiek to zauważy.