Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> walka z botami w konkursach
czachor
post
Post #1





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam,

czy macie jakieś techniki zabezpieczania się przed botami, którymi użytkownicy np. głosują w jakiś konkursach?

Mam taki problem - jest konkurs, w którym o jakiejś godzinie (umownie godzinie zero) można wygrać gadżety. Użytkownik, który założy konto w serwisie (rejestracja z reCaptcha, wysłanie potwierdzenia na e-mail i kliknięcie w link aktywujący konto), otrzymuje 4 głosy (odnawialne po każdej godzinie zero). Użytkownicy bez konta nie zagłosują. Głosowanie polega na wyborze jednej z 2 opcji - wybór nie ma znaczenia.

Licznik czasu do następnej godziny zero jest wyświetlany na stronie i działa przy pomocy JS (wartość początkowa licznika jest pobierana via ajax z serwera). Jak w takich konkursach bywa, wygrywa użytkownik, który odda głos najbliżej danej godziny zero.

Praktyka wygląda tak... Użytkownik przy pomocy bota zakłada kilkanaście kont w serwisie. O godzinie zero do ataku rusza bot, otwierający w swoim oknie kilka okien przeglądarki, loguje się w każdym z nich na osobne konto i zaczyna masowo oddawać głosy w oparciu o wskazanie licznika czasu. Skuteczność jest bardzo duża, z reguły jednocześnie atakuje kilka-kilkanaście botów, więc 90% wygranych to boty. Oczywiście każda wygrana jest sprawdzana w logach i weryfikowana, ale jest to proces czasochłonny.

Problemy są takie:
1. Jak można zablokować masowe zakładanie kont? Jest reCaptcha, ale z tym sobie boty radzą. Ukryte pola odpadają, bo bot jest pisany pod konkretny konkurs. Najlepszym rozwiązaniem jest chyba stworzenie bazy pytań logicznych, np. "dodaj dwa plus dwa i wpisz wynik słownie" - ale takak baza będzie skończona i użytkownik może stworzyć sobie bazę pytań i odpowiedzi.
2. Jak zablokować głosowanie przez boty przy spełnieniu zasad usability (captche i inne odpadają, również przy logowaniu)?
3. Inna opcja pkt. 2: Jak wykrywać, że głosuje bot? Zasadniczo nie zależy mi na głosie, ale na tym, żeby nagrody nie wygrał bot. Dodam, że ponieważ bot jest przeglądarkowy, user agent nie pomoże w tym przypadku.

Jeśli coś niejasno opisałem, proszę oczywiście o pytania. Mam nadzieję, że powstanie jakaś dyskusja w temacie, która przyda się nie tylko mi.

Ten post edytował czachor 30.03.2012, 13:37:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
czachor
post
Post #2





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


@crocodillo - tak jak piszesz, jest to na duże utrudnienie oraz biorąc pod uwagę, że każdy ma 4 głosy do wstrzelenia się we właściwą godzinę, niemożliwe do wprowadzenia - w praktyce każdy miałby 1 głos zamiast 4, bo nikt tak szybko nie wpisuje captchy.

@Pilsener - jest to jakieś wyjście, ale jak boty umieją się zarejestrować używając przy tym recaptchy i właśnie potwierdzenia konta mailwem. Myślałem również o zatwierdzeniu swoich głosów: użytkownik oddaje te 4 głosy, ale po ostatnim musi np. w ciągu godziny wpisać captchę (lub wykonać inną czynność), która udowodni, że jest człowiekiem. To oznacza przesunięcie wyboru zwycięzcy o godzin. Zasadniczo wyjście wydaje się w porządku - słaby punkt to to, że znowu jest to jakieś utrudnienie.

Zastanawiałem sie również nad jakims algorytmem, który wykrywałby boty. Jakieś połączenie wykrywania aktywności (klików) użytkownika, user agent, adresu IP oraz analizowania tego pod kątem czasu. Jak na razie sporo teoretyzowania i zbyt dużo niewiadomych.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 12:45