Funkcja — zbieranie odpowiedzi

Ochrona przed spamem, której nigdy nie musisz przechodzić.

NumoForms odsiewa śmieciowe zgłoszenia trzema warstwami egzekwowanymi przez wyzwalacz bazodanowy, a nie przez formularz: znajdującym się poza ekranem polem pułapki, progiem czasu wypełniania wynoszącym domyślnie 3 sekundy i konfigurowalnym dla każdej ankiety oraz limitem częstotliwości 30 odpowiedzi na minutę na ankietę. Celowo nie ma tu reCAPTCHA. Odpowiedź oznaczona przez kontrole nie zostaje odrzucona — respondent dowiaduje się, co się stało, i może ją potwierdzić.

Kontrola żyje w bazie danych, a nie na stronie

Odpowiedzi w NumoForms trafiają do bazy danych prosto z przeglądarki. Oznacza to również, że każda reguła zapisana wyłącznie w interfejsie ma charakter doradczy. Skrypt wysyłający dane bezpośrednio do API nigdy nie wykonuje twojego JavaScriptu, więc nigdy nie widzi kontroli.

Dlatego wszystkie trzy kontrole działają w wyzwalaczu bazodanowym. Przechodzi przez niego każdy zapis — czy pochodzi z hostowanej strony ankiety, z ankiety osadzonej w innej witrynie, czy ze skryptu, który ktoś napisał o trzeciej nad ranem. To ta sama logika, która stoi za datami zamknięcia i limitami odpowiedzi, również egzekwowanymi na poziomie bazy danych, a nie przez ukrycie przycisku.

Miejsce, w którym kontrole działają, znaczy więcej niż to, jak są pomysłowe. Dwa z trzech sygnałów — wartość pułapki i czas, jaki upłynął — przesyła przeglądarka, więc skrypt pisany na zamówienie może zostawić ukryte pole puste i nie przesłać żadnej informacji o czasie. Limit częstotliwości nie potrzebuje niczego od klienta i dlatego to właśnie ta warstwa nadal trzyma, gdy dwie pozostałe zostaną usunięte.

Trzy warstwy

1. Pułapka

Pole umieszczone poza ekranem, którego człowiek wypełniający ankietę nigdy nie widzi i nigdy nie zaznacza. Automaty wypełniające formularze zwykle uzupełniają każde znalezione pole. Cokolwiek przychodzi z tym polem wypełnionym, nie zostało wypełnione przez osobę czytającą stronę.

2. Czas wypełniania

Dolny próg, w sekundach, na czas udzielenia odpowiedzi. Domyślnie wynosi 3 i ustawia się go dla każdej ankiety, więc konsultacje z 40 pytaniami mogą wymagać więcej niż dwupytaniowy formularz opinii. Brak informacji o czasie nie jest traktowany jako spam, więc starsze klienty i odpowiedzi wznowione przez link zapisz i wróć później nadal działają.

3. Limit częstotliwości

Odpowiedzi na minutę na ankietę, domyślnie 30. Ta warstwa nie potrzebuje od klienta absolutnie niczego i o to właśnie chodzi: trzyma również wobec bota, który usuwa każdy element metadanych, na których opierają się dwie pozostałe warstwy.

Dlaczego nie ma reCAPTCHA

To decyzja, która najczęściej pojawia się w postępowaniach zakupowych, więc oto cała argumentacja.

Czyni Google podmiotem przetwarzającym w twoich konsultacjach

Umieszczenie reCAPTCHA w formularzu konsultacji publicznych oznacza, że każdemu mieszkańcowi, który go otworzy, wysyłane są dane do Google, zanim odpowie na jakiekolwiek pytanie. Ktoś w twojej organizacji musi potem odnotować to przekazanie, uzasadnić je i obronić w klauzuli informacyjnej — dla formularza, który istnieje po to, by zebrać opinie o wywozie śmieci. NumoForms trzyma treść ankiet i odpowiedzi w londyńskim regionie Supabase, a strona o RODO i ochronie danych wyjaśnia, co to oznacza w praktyce. Dołożenie firmy reklamowej do łańcucha przetwarzania po to, by wyłapać garść śmieciowych wierszy, to kiepski interes dla samorządu prowadzącego konsultacje publiczne (strona po angielsku).

Zawodzi respondentów z niepełnosprawnościami

Zadania obrazkowe i dźwiękowe są dobrze udokumentowaną przyczyną nieudanych zgłoszeń wśród osób z niepełnosprawnościami. Nasza strona o dostępności występuje dokładnie przeciwko takiemu wzorcowi. Wdrożenie CAPTCHA byłoby sprzeczne ze stanowiskiem, które publikujemy, a ankieta, której użytkownik czytnika ekranu nie może dokończyć, nie jest ankietą z dobrą ochroną przed spamem. Jest ankietą z obciążoną próbą.

Trzy kontrole prowadzone przez NumoForms są niewidoczne. Nikt nie jest proszony, by cokolwiek udowadniał, wskazywał autobus albo przepisywał zniekształcone nagranie. Nie ma zadania, które można oblać.

Odrzucenie nigdy nie jest ostateczne

Każda z tutejszych heurystyk ma uczciwy przypadek fałszywego alarmu, a udawanie, że jest inaczej, byłoby prostą drogą do utraty prawdziwych danych.

Na ankietę z dwoma pytaniami rzeczywiście odpowiada się w kilka sekund. Sala trzydziestu osób na spotkaniu konsultacyjnym, którym jednocześnie rozdano link, rzeczywiście generuje trzydzieści zgłoszeń w tej samej minucie. Z punktu widzenia bazy danych obie sytuacje wyglądają dokładnie jak atak.

Dlatego oznaczona odpowiedź nie trafia po cichu do kosza. Respondent widzi, co się stało, zachowuje swoje odpowiedzi i może wysłać je ponownie — druga próba pomija sygnał czasu, ponieważ człowiek właśnie za nią poręczył. Pułapka i limit częstotliwości nadal obowiązują, więc prawdziwa fala zgłoszeń zostaje poproszona o ponowienie za chwilę, a nie przepuszczona bez zastanowienia. Zamienia to filtr w utrudnienie dla skryptu i jedno dodatkowe kliknięcie dla człowieka. Utrata prawdziwej odpowiedzi w konsultacjach jest gorsza niż przyjęcie jednej śmieciowej, a śmieciowa i tak rzuci się później w oczy w wynikach i analityce porzuceń.

Czego to nie robi

Powiedziane wprost, bo i tak w końcu się o tym dowiesz.

  • Brak Cloudflare Turnstile. To najczęściej sugerowana alternatywa dla reCAPTCHA, szanująca prywatność, i dziś nie jest zintegrowana.
  • Brak blokowania po adresie IP. Nic tutaj nie blokuje ani nie ogranicza częstotliwości według adresu, więc zdeterminowany atakujący, który rozprasza zgłoszenia po wielu źródłach i utrzymuje tempo poniżej limitu, nie zostanie zatrzymany przez te trzy warstwy.
  • Dwa z trzech sygnałów pochodzą z przeglądarki. Wartość pułapki i czas, jaki upłynął, dostarcza klient, więc skrypt napisany specjalnie pod twoją ankietę może odmówić przesłania któregokolwiek z nich. Zatrzymują masowe automaty do formularzy, a nie ukierunkowanego napastnika; warstwą, która nie zależy od współpracy, jest limit częstotliwości.
  • Brak filtrowania treści. Kontrole patrzą na to, jak odpowiedź przyszła, a nie co mówi. Obraźliwy tekst otwarty to problem moderacji; jednoetapowe zatwierdzanie wstrzymuje odpowiedzi do czasu, aż ktoś je zaakceptuje.

To, w czym te warstwy są dobre, to przypadek zwyczajny: automaty wypełniające formularze, masowe zgłoszenia z jednego skryptu i przypadkowe podwójne wysłanie.

Pytania, które padają o spam w ankietach

Czy NumoForms korzysta z reCAPTCHA?

Nie, i jest to świadoma decyzja, a nie luka. Dodanie reCAPTCHA uczyniłoby Google podmiotem przetwarzającym w każdych konsultacjach publicznych, z czego inspektor ochrony danych musiałby się następnie rozliczyć. Zadania obrazkowe i dźwiękowe są też dobrze udokumentowaną przyczyną nieudanych zgłoszeń wśród respondentów z niepełnosprawnościami. Trzy kontrole, które prowadzi NumoForms, są niewidoczne: nie ma żadnego zadania, które można oblać.

Co się stanie, jeśli ktoś naprawdę odpowie szybciej niż wynosi próg czasu wypełniania?

Zobaczy komunikat o tym, co się stało, i może potwierdzić wysyłkę, która wtedy przechodzi. Na ankietę z dwoma pytaniami rzeczywiście da się odpowiedzieć w niecałe trzy sekundy, więc twarde odrzucenie wyrzucałoby prawdziwe odpowiedzi. Utrata prawdziwej odpowiedzi w konsultacjach jest gorsza niż przyjęcie jednej śmieciowej.

Dlaczego kontrole antyspamowe działają w bazie danych, a nie w formularzu?

Ponieważ odpowiedzi trafiają do bazy danych prosto z przeglądarki. Wszystko, co sprawdzane jest wyłącznie w interfejsie, może pominąć skrypt wysyłający dane bezpośrednio, więc kontrola na poziomie interfejsu jest sugestią, a nie zabezpieczeniem. NumoForms uruchamia kontrolę pułapki, czasu wypełniania i limitu częstotliwości w wyzwalaczu bazodanowym, przez który przechodzi każdy zapis, niezależnie od tego, skąd pochodzi.

Jakie są domyślne wartości czasu wypełniania i limitu częstotliwości?

Próg czasu wypełniania wynosi domyślnie 3 sekundy i jest konfigurowalny dla każdej ankiety. Limit częstotliwości wynosi domyślnie 30 odpowiedzi na minutę na ankietę. Limit częstotliwości nie potrzebuje niczego od klienta, więc obowiązuje także bota, który całkowicie usuwa metadane o czasie.

Czy NumoForms blokuje spam po adresie IP?

Nie. Nie ma blokowania opartego na adresach IP ani integracji z Cloudflare Turnstile. Ochronę stanowią pułapka, próg czasu wypełniania oraz limit częstotliwości dla ankiety, wszystkie egzekwowane w bazie danych.

Odsiej śmieci bez łamigłówki.

Pułapka, próg czasu wypełniania i limit częstotliwości dla ankiety działają w wyzwalaczu bazodanowym, więc każda odpowiedź przechodzi przez nie niezależnie od tego, którą drogą wpłynęła. Twoi respondenci nigdy nie są proszeni o wskazanie autobusu.

  • Trzy warstwy: pułapka, czas wypełniania, limit częstotliwości
  • Próg czasu wypełniania konfigurowalny dla każdej ankiety, domyślnie 3 sekundy
  • Oznaczony respondent może potwierdzić i kontynuować
Zacznij tworzyć