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 (1 - 7)
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Ja mam prosty i sprawdzony sposób - głosowanie przez SMS (IMG:style_emoticons/default/Lkingsmiley.png)

A co do reszty to ma być zabawa. Robię najczęściej ograniczenie raz na godzinę z jednego IP (sprzyja to ilości odsłon). Często userzy się skarżą, że z tego IP oddano już głos a nie głosowali - cóż, liczba adresów jest ograniczona (IMG:style_emoticons/default/wink.gif)

Chyba, że zależy nam z jakiś powodów na liczbie kont (np. mamy prowizję od tego) to robimy system jedno konto = jeden głos i wtedy każdy zakłada multum kont.

Na zawodowych graczy nie ma rady, ale jest rada na boty - napisać dobry kapcia, którego pierwszy lepszy dzieciak nie złamie.
Go to the top of the page
+Quote Post
czachor
post
Post #3





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

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


Głosowanie przez SMS jest również jako alternatywny kanał, ale nie mogę ograniczać się tylko do niego, bo jest to dużo większa bariera wejścia. Natomiast ograniczenie IP jest zbyt restrykcyjne i jako takie niestety odpada - inaczej już dawno byłoby zaimplementowane (IMG:style_emoticons/default/smile.gif)

Jeśli chodzi o captche - reCaptcha z tego co wiem jest dosyć trudna do złamania, ale tak czy tak są aplikacje, które służą do jej łamania.
Go to the top of the page
+Quote Post
Sky_walker
post
Post #4





Grupa: Zarejestrowani
Postów: 214
Pomógł: 23
Dołączył: 26.09.2005

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


Dlatego własna jest lepsza - ktoś musiałby wykombinować dedykowany skrypt do łamania jej, a to już jest większy koszt (IMG:style_emoticons/default/smile.gif) pomijając kwestię, że część ludzi nawet nie ma pojęcia jak się za to zabrać co samo w sobie stanowi niezłą barierę (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
czachor
post
Post #5





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

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


Jest to oczywiście racja, ale to byłoby rozwiązane na rejestrację przez boty. Główny problem to głosowanie przez boty, tutaj captcha odpada, bo chodzi o łatwe oddanie głosu.

PS. Chyba nie działa mi powiadamianie mailem o nowych odpowiedziach...?
Go to the top of the page
+Quote Post
crocodillo
post
Post #6





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


reCaptcha przy oddawaniu głosu?

Możesz też wprowadzić potwierdzenie po oddaniu głosu w postaci reCaptcha itp.
Go to the top of the page
+Quote Post
Pilsener
post
Post #7





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Nie wspominając już o mailowym potwierdzeniu oddania głosu (IMG:style_emoticons/default/wink.gif) Ale to wszystko tylko utrudnienie - no cóż, trzeba utrudniać życie botom tak długo, aż ich kodowanie stanie się nieopłacalne.

Ten post edytował Pilsener 30.03.2012, 19:19:53
Go to the top of the page
+Quote Post
czachor
post
Post #8





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

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.09.2025 - 11:39