2012-11-24 10 views
9

Jestem założycielem dużej, tak zwanej "toplisty". Użytkownicy mogą przesłać swoją stronę do listy najlepszych i zdobyć wyższą pozycję, zdobywając głosy za swój wpis na toplistę.Identyfikacja unikalnego gościa, zaawansowany sposób? (PHP/Java)

Przeciętny gość jest młody, głównie w wieku 13-20 lat. Przynoszą korzyści, ale także wady. Przez ostatnie 5 lat aktywnie walczyłem z "oszustami", którzy używają robotów do zdobywania głosów. Te roboty używały serwerów proxy, różnych agentów użytkownika, a nawet potrafiły rozwiązywać wiele rodzajów pytań CAPTCHA (reCAPTCHA, SolveMedia i niestandardowe captcha). Korzystanie z tych robotów znacznie się zmniejszyło, odkąd wprowadziłem nowy system, który tworzy losowy układ i ładuje 1 z 15 różnych systemów CAPTCHA przy każdej ładowanej stronie. To już nie jest problem.

Ludzie przeszli teraz na ręczne oszukiwanie. Korzystają z wtyczek do przeglądarek, które zmieniają swój adres IP praktycznie na każdym ładowaniu strony (np .: https://addons.mozilla.org/en-us/firefox/addon/ipflood/). Naprawdę nie mogę znaleźć sposobu na walkę z tym, ale to bardzo poważny problem. Trudno w to uwierzyć, ale te dzieciaki rozwiązują nawet ręcznie 5000 pytań captcha, które trwają wieki.

Moje pytanie brzmi, czy ktokolwiek może mi pomóc wymyślić sposób rozwiązania tego problemu? Używam ustawień plików cookie i sesji, ale oni zaczęli je zauważać i usuwać. Zamierzam wprowadzić konta użytkowników i sprawić, że będzie bardziej interesujące głosowanie za pośrednictwem konta, ale nie chcę wymagać kont. Wątpię, czy tak jest, ale czy istnieje jakakolwiek inna metoda walki z oszustami (może to być jak aplikacja internetowa Java, która omija proxy ustawione w przeglądarce i przekazuje prawdziwe IP do strony, jeśli to możliwe?)? Czy powinienem po prostu zrezygnować i zatrudnić ludzi do codziennych kontroli, aby sprawdzić, czy strona zyskuje tak wiele głosów?

+0

Tam, gdzie jest wola, jest sposób. Zrób swój login do głosowania, a także przechowuj tam swoje ip, z którymi się zalogujesz, jeśli zmienia się 5k razy dziennie, a także zna ustawione żetony CSRF na każdy głos, w trakcie sesji i w pliku cookie, wykryj boty, sprawdzając, czy również pobierają zasoby takie jak obrazy, css. –

+0

Po prostu zdałem sobie sprawę, że zapomniałem wspomnieć o głosowaniu jest możliwe tylko raz na 24 godziny. Nie chcę wymagać logowania użytkownika, wątpię, że jest milion osób chętnych do założenia konta, większość z nich przestałaby na pewno korzystać z mojej strony internetowej. Ułatwiam korzystanie z konta, np. Usuwanie czasów oczekiwania i captcha. Wydają się to lubić. Ograniczenie do 1 głosu na 24 godziny jest łatwe, ponieważ mogę sprawdzić nazwy użytkowników zamiast adresów IP. – Jason

+1

Naprawdę interesujące pytanie. –

Odpowiedz

5

Polecam wprowadzenie pewnego rodzaju mechanizmu zaufania IP, ponieważ adresy IP używane przez otwarte proxy są często wykorzystywane do nielegalnych działań.
Tak wiele z tych adresów zostaje złapanych przez honeypoty i znajduje się na czarnej liście kilku organizacji. Spójrz na projekt honeypot, na przykład:
https://www.projecthoneypot.org/
Jest to ogromna baza danych, którą można łatwo zaimplementować w PHP przy użyciu funkcji wyszukiwania DNS. także
http://www.stopforumspam.com/ jest całkiem niezły i zapewnia interfejs REST, jeśli dobrze go pamiętam.
Poza tym istnieją setki DNSBL że Blacklist różne rodzaje działalności, spojrzeć na niektóre proxy DNSBL:
http://spamlinks.net/filter-dnsbl-lists.htm lub http://dnsbl.tornevall.org/ lub http://www.sorbs.net/

Ostatni, ale nie najmniej można używać wspólnych metod PHP do blokowania proxy (Najprostszym może być sprawdzenie nagłówka HTTP-X-Forwarded, ale nie wszystkie serwery proxy to dostarczają).
Kontynuuj czytanie tutaj: lub tutaj: Detect clients with Proxy Servers via PHP

+0

Te linki są naprawdę przydatne, dziękuję!Właśnie szukałem adresów IP, które głosowały na podejrzane wpisy, a odkryłem, że całkiem niewiele znanych jest jako proxy w projekcie honeypot. Zajrzę do tych baz danych, wydaje mi się to świetną metodą dla mnie. – Jason