Javascript a ochrona przed spamem

0

Witam!
Czy znacie jakies dobre rozwiazanie chroniace formularze rejestracyjne przed rejestracja botow? Czy nie daloby sie wykorzystac jakiegos prostego rozwiazania wykorzystujacego javascript, np takiego (jesli nie, to prosze, napiszcie dlaczego jest to slabe rozwiazanie):

  1. Na serwerze generuje pewien 'ciag znakow - kod'. Na stronie umieszczam skrypt javascript, a w nim do zdarzenia onmousemove podlaczam pewna funkcje.
  2. Funkcja ta, po wykonaniu ruchu myszka, za pomoca ajax'a wysyla na serwer ten wlasnie 'kod' - jesli po zatwierdzeniu formularza (po submicie) kod przeslany ajaxem oraz ten zachowany na serwerze zgadzaja sie, zadanie jest dalej przetwarzane. Jesli nie, rejestracja / dodanie komentarza / wpisu / inne, sa odrzucane.

Plusy tego rozwiazania: cala komunikacja podpieta jest do zdarzenia onmousemove. Boty chyba nie potrafia generowac takich zdarzen... a ludzie wypelniajacy formularz - z pewnoscia tak. Kod oczywiscie wysylany jest tylko raz na jeden request.

Co o tym myslicie? Licze sie oczywiscie z tym, ze osoby z pewnymi niepelnosprawnosciami moga miec tu pewne problemy, ale cos za cos...

0

Lepiej nie polegać na myszce, tylko na klawiaturze. onkeypress i tego typu jak już. Bez myszki można wypełnić formularz, bez klawiatury niekoniecznie (no, chyba, że masz same pola typu checkbox czy radio ;-)).

Ewentualnie zainteresuj się prostszą rzeczą:
pole typu "input" ukryte przed użytkownikiem za pomocą JS i musi zostać puste (dodajesz opis: "zostaw puste" i też go ukrywasz i jak ktoś nie ma JS to mu się wyświetli opis) ewentualnie musi zawierać jakiś określony kod, który jest wrzucany za pomocą JS do tego pola (i pole ukrywane) - i jak formularz wysłany zostanie to sprawdzasz czy kod się zgadza.
Boty w większości przypadków nie mają obsługi JS+DOM więc może to być dobre.

Plus zastanów się nad takimi rzeczami jak sprawdzanie czy nie został formularz wysłany "zbyt szybko", na przykład sekundę po załadowaniu strony - rzadko się zdarzają tak szybcy użytkownicy ;-)

0

Jasne zwykły bot tego nie przejdzie. Ale wystarczy spojrzeć w kod strony i zrobienie skryptu/bota który regexem będzie wyciągać twoja generowana wartość, a potem we własnym zakresie komunikować się z serwerem to parę minut zabawy.
Możesz do tego dołożyć wartości zapisywane w sesji albo cookie ale to i tak nie da zbyt dużo.

Musisz tez pamiętać o userach którzy wyłączają javascript (lub tych na urządzeniach mobilnych)

W sumie najlepszym zabezpieczeniem sa chyba kody captacha (coraz bardziej zaszumanie i skomplikowane utrudniają niestety nie tylko życie botom ale także użytkownikom).

Może jakieś pytania ? np. wpisz literę z 2 rzędu i 3 kolumny na klawiaturze. Do tego połączyć to z kodem captacha (czyli generować obrazek z takim tekstem ;p). Chociaż i tak da się to złamać ... jak wszystko :)

0
Rezor napisał(a)

wpisz literę z 2 rzędu i 3 kolumny na klawiaturze

Mówisz o pamiętaniu o kompatybilności, a sam oferujesz takie 'debilne' rozwiązania. O ile dobrze wiem to w komórkach są inne układy klawiatury niż na zwykłej komputerowej, a tym bardziej na niestandardowych klawach.

0

Faktycznie ... :) ale mimo wszystko kody captacha są chyba najodpowiedniejsze

1 użytkowników online, w tym zalogowanych: 0, gości: 1