Jak to działa
Pole honeypot jest dodawane do formularza HTML, ale ukrywane przed użytkownikiem za pomocą CSS (display: none) i oznaczane atrybutem aria-hidden="true". Prawdziwy użytkownik nie widzi tego pola i nie wypełnia go.
Bot, który automatycznie przesyła formularze, nie rozpoznaje, które pola są widoczne - wypełnia wszystkie, łącznie z honeypot.
Co dzieje się po wypełnieniu honeypot
Serwer sprawdza wartość pola honeypot. Jeśli jest wypełnione, żądanie jest identyfikowane jako pochodzące od bota. Typowa reakcja to:
- ciche odrzucenie żądania (bez informowania bota),
- zwrócenie fałszywego komunikatu sukcesu (bot 'myśli', że mu się udało),
- zarejestrowanie zdarzenia w logach bezpieczeństwa.
Zalety
- brak wpływu na doświadczenie użytkownika (UX),
- brak potrzeby wdrażania inwazyjnych mechanizmów (np. reCAPTCHA),
- prostota implementacji i utrzymania,
- zerowy narzut wydajnościowy po stronie frontendu.
Ograniczenia
- zaawansowane boty mogą analizować CSS i pomijać ukryte pola,
- nie chroni przed atakami ręcznymi (targeted attacks),
- skuteczność spada przy publicznym opisie mechanizmu w kodzie źródłowym.
Honeypot w połączeniu z innymi warstwami
Honeypot jest najskuteczniejszy w połączeniu z rate limiting (ograniczenie częstotliwości żądań) i walidacją backendową (sprawdzanie struktury i typów danych). Razem tworzą wielowarstwowy model ochrony formularzy.