Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jeden user = 1 konto, czy to wykonalne?
andycole
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 14.12.2004

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


Witam,

Prowadze gre internetowa, w ktorej zalezy mi na tym, zeby 1 uzytkownik mial 1 konto.
Ewentualnie maksymalnie jak to mozliwe utrudnic zalozenie 2 konta.

W tej chwili mam rejestracje z aktywacja poprzez adres e-mail.

Macie jakies inne pomysly?

Po IP nie ma co sprawdzac, po przegladarce tak samo niestety :/
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
gothye
post
Post #2





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


możesz jeszcze spróbować wykorzystać $_COOKIE ,ale to można ominąc przez usunięcie ciasteczek w przeglądarce


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
MateuszS
post
Post #3





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Niestety to chyba jedyne sensowne rozwiązania, najlepiej poprzez spr. emaila i IP z warunkiem z OR.

Jezeli(w bazie jest takie ip lub taki email jest zajety)
{
nie możesz się zarejestrować
}


Jak chcesz to dorzuć do tego Cookie

Ten post edytował MateuszScirka 4.02.2010, 17:39:43


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
andycole
post
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 14.12.2004

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


Cookies niestety jest za slabym zabezpieczeniem, bo po 1 mozna uzyc innej patrzajki lub po 2 mozna (jak pisaliscie) usunac cookie sad.gif

Co do IP, czasami wielu wielu ludzi ma takie samo IP (sieci, szkoly itp), poza tym IP jest dynamiczne coraz czesciej... sad.gif
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Musisz rejestrować wszystko, co może wyróżnić usera, czyli IP, cookie, przeglądarka, system, email, czasy logowania, wszelkie ruchy między kontami (surowce, wojska, itp)... Potem porównywać wpisy, szukać zbieżności. Niestety, nie ma złotego środka. Super, jakby można poznać adres MAC karty sieciowej, to by wyróżniło komputer, z którego łączy się user, ale to tylko możliwe w obrębie sieci. Administrowałem kiedyś grami, wiec trochę liznąłem tematu. Dobry admin potrafi z dobrze zapisanych danych wyciągnąć wiele wniosków ;p


--------------------
Go to the top of the page
+Quote Post
Kszyhuu
post
Post #6





Grupa: Zarejestrowani
Postów: 157
Pomógł: 32
Dołączył: 24.08.2009

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


Kiedyś prowadząc grę widziałem, że było to zrobione w dość prosty sposób, niewymagający wielkiego nakładu sił, a przynoszący dobre efekty.

1) Zrób plik np multicheck.php. W części html'owej daj forma gdzie wpisuje się id początkowe i id końcowe przedziału. W php zrób zapytanie, które pokaże Ci graczy o takim samym IP z tego przedziału.
  1. <form method="post" action="multicheck.php">
  2. id początkowe: <input type="text" name="id1"/>
  3. id końcowe: <input type="text" name="id2"/>
  4. <input type="submit" value="Wyszukaj" />

A w części php daj zapytanie i prześlij później wynik do html. Masz zapytanie, zmienisz tabele i kolumny i będzie si:
  1. $result = $db -> EXECUTE("SELECT
  2. p.ip,
  3. p.id as pl1_id,
  4. p.user as pl1_nick,
  5. p.email as pl1_email,
  6. p2.id as pl2_id,
  7. p2.user as pl2_nick,
  8. p2.email as pl2_email
  9. FROM `players` p JOIN players p2 USING(ip)
  10. WHERE p.id!=p2.id
  11. AND ip!=''
  12. AND p.id BETWEEN $_POST[id1] AND $_POST[id2]
  13. ORDER BY ip, pl1_id, pl2_id");

2) Zrób w modułach plik zapisujący do bazy każdą akcję użytkownika, zapisując tam datę, id, id2(gracza, któremu coś przekazujemy etc.), ip, co zostało wpisane w okienko form/textarea, nazwę pliku.
3) Zrób przeglądarkę tych logów. W html daj forma, w którego wpisuje się daną rzecz (tę datę/ip/coś innego) i obok checkboxa, odwracającego wynik. Czyli np jeśli wpiszesz w id 50 i zaznaczysz checkboxa, to wynikiem będzie każde id poza 50. Pokażę Ci tpl'kę i php żebyś miał porównanie, przerobisz sobie:
  1. <table width="200%">
  2. <tr>
  3. <td>datestamp(data)</td>
  4. <td>fid(ID gracza)</td>
  5. <td>sid</td>
  6. <td>ip</td>
  7. <td>what</td>
  8. <td>much</td>
  9. </tr>
  10. <form method="post" action="logi.php?step=do">
  11. <tr>
  12.  
  13. <td><input type="checkbox" name="d" value="true"><input type="text" name="datestamp" size="5"></td>
  14. <td><input type="checkbox" name="f" value="true"><input type="text" name="fid" size="5"></td>
  15. <td><input type="checkbox" name="s" value="true"><input type="text" name="sid" size="5"></td>
  16. <td><input type="checkbox" name="i" value="true"><input type="text" name="ip" size="5"></td>
  17. <td><input type="checkbox" name="w" value="true"><input type="text" name="what" size="5"></td>
  18. <td><input type="checkbox" name="m" value="true"><input type="text" name="much" size="5"></td>
  19. </tr>
  20. <tr>
  21. <td><input type="submit" value="Szukaj!"></td>
  22. <td></td>
  23. <td></td>
  24. <td></td>
  25. <td></td>
  26. <td></td>
  27. </tr>
  28. </form>
  29. {if $step == 'do'}
  30. {section=list}
  31. <tr>
  32. <td>{$list.datestamp}</td>
  33. <td>{$list.fid}</td>
  34. <td>{$list.sid}</td>
  35. <td>{$list.ip}</td>
  36. <td>{$list.what}</td>
  37. <td>{$list.much}</td>
  38. </tr>
  39. {/section}
  40. {$error}
  41. {else}
  42. {/if}

  1. <?php
  2. define('LOGGS_PER_PAGE', 300);
  3. if (!isset($_GET['step'])) $_GET['step'] = '';
  4. if(!isset($_SESSION['logtab']))
  5. $_SESSION['logtab']='logging';
  6.  
  7. if ($_GET['step'] == 'do'){
  8. $qq = array();
  9. if(empty($_POST['from'])) $_POST['from']=0;
  10. if(!empty($_POST['datestamp'])) $qq[] = 'datestamp '.(empty($_POST['d'])? '' : 'not ').'like \'%'.$_POST['datestamp'].'%\'';
  11. if(!empty($_POST['fid'])) $qq[] = 'fid'.(empty($_POST['f'])? '' : '!').'='.$_POST['fid'];
  12. if(!empty($_POST['sid'])) $qq[] = 'sid'.(empty($_POST['s'])? '' : '!').'='.$_POST['sid'];
  13. if(!empty($_POST['ip'])) $qq[] = 'ip '.(empty($_POST['i'])? '' : 'not ').'like \'%'.$_POST['ip'].'%\'';
  14. if(!empty($_POST['what'])) $qq[] = 'what '.(empty($_POST['w'])? '' : 'not ').'like \'%'.$_POST['what'].'%\'';
  15. if(!empty($_POST['much'])) $qq[] = 'much '.(empty($_POST['m'])? '' : 'not ').'like \'%'.$_POST['much'].'%\'';
  16. $loggs = array();
  17. if(!empty($qq))
  18. {
  19. $query = $db -> Execute('SELECT * FROM '.$_SESSION['logtab'].' where '.implode(' and ', $qq).' order by datestamp ASC limit '.$_POST['from'].', '.LOGGS_PER_PAGE);
  20. while($query && !$query -> EOF){
  21. if($query -> fields['what'] == 'login') $query -> fields['much'] = false;
  22. $loggs[] = $query -> fields;
  23. $query -> MoveNext();
  24. }
  25. if($query)
  26. $query->Close();
  27. }
  28. $tpl->assignGroup(array(
  29. "list" =>$loggs,
  30. "error" => mysql_error(),
  31. "next" => count($loggs)==LOGGS_PER_PAGE,
  32. ));
  33. }
  34.  
  35. $tpl -> assign ("step", $_GET['step']);
  36. $tpl -> parse('loggs.tpl');
  37. ?>

Później tylko w multicheck sprawdzasz podejrzane konta i sprawdzasz ich akcje w logach- czy logują się jedno po drugim, czy zawsze mają to samo ip, czy przesyłają sobie surowce, czy komunikują się przez pocztę z tymi samymi osobami, etc. Sprawdzenie, czy dwa dane konta są multikontami zajmuje około 5 minut. smile.gif
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%)
-----


Cytat(andycole @ 4.02.2010, 18:15:49 ) *
Cookies niestety jest za slabym zabezpieczeniem, bo po 1 mozna uzyc innej patrzajki lub po 2 mozna (jak pisaliscie) usunac cookie sad.gif

Co do IP, czasami wielu wielu ludzi ma takie samo IP (sieci, szkoly itp), poza tym IP jest dynamiczne coraz czesciej... sad.gif
- niestety problem stary jak świat.

Ja bym proponował jakiś system weryfikacji oparty głównie o:

1. Gracz deklaruje, że gra z jednego komputera i przeglądarki, zatem ustawiamy mu ciacho, które zapobiega założeniu drugiego konta
2. Gracz deklaruje, że ma stałe IP i tylko z niego będzie grał

Jeśli gracz nie chce tego zadeklarować, bo chce np. grać z komputera w pracy, w domu, z kawiarenki i jeszcze z dwóch laptopów to jesteśmy ugotowani. Wtedy dajemy mu status "niezaufany" i zbieramy wszystkie możliwe informacje, następnie na podstawie tych informacji oraz korzyści wynikających z MA specjalny program w nocy wyszukuje podejrzane konta i wypluwa je rano w postaci raportu, który przegląda moderator/moderatorzy i dokonuje ostatecznej weryfikacji.

Oczywiście należy jakoś zachęcić graczy, by deklarowali, że grają z jednego komputera i przeglądarki - jakieś dodatkowe punkty czy coś.

Oczywiście jest to tylko "jakiś pomysł" i nigdy go nie testowałem w praktyce. Poza tym zostaje Ci cały szereg standardowych rozwiązań by utrudnić MA.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #8





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




@Pilsener, masz rację, tak się właśnie odbywa w praktyce. Oczywiście, że gracz usuwa cookie, zmienia przeglądarki, loguje się z kilku miejsc. Ale rejestrując wszelkie zdarzenia i mając odpowiednie narzędzie do porównania logów, sprawny admin znajdzie prędzej czy później powiązania. Gracze "dojrzali" nie podejmują ryzyka, bo nie chcą stracić konta w grze, przygodni albo szukający sensacji nie są dobrym materiałem na gracza, są raczej "sezonowi". Generalizując, jeżeli masz sporo danych odnoście ruchów gracza na koncie, nie pomoże graczowi usuwanie ciach, zmiana przeglądarki, wchodzenie przez proxy, itp. Bo np. gracz loguje się z jednego konta i przesyła na inne swoje konto surowce. Potem restartuje neostradę (albo wchodzi przez proxy lub używa innego łącza) i używa innej przeglądarki, żeby wejść na inne swoje konto. Jedyne powiązanie w takim wypadku to przesłane surowce. Jak na razie, nie ma się do czego przyczepić. Jednak po kilkunastu dniach, jest po sobotniej imprezie suto zakrapianej i musi mu się schemat... BINGO! Albo kiepsko się uczył i mama nałożyła bana na komputer ;p Loguje się u kumpla, który pomagał mu nielegalnie wspierać się surowcami albo wojskiem. BINGO!
Na właśnie takie przypadki administrator musi być przygotowany. Szczerze powiedziawszy, nie jest problemem odnaleźć graczy wykorzystujących illegal, znacznie trudniej odróżnić grających wg. zasad, ale będących w sieci z innymi. Może być to sieć osiedlowa, biblioteka, kafejka itp. tam loguje się spora grupa graczy, jedno ip, to samo cookie, kilkadziesiąt kont i na dodatek są w jednym klanie, plemieniu, itp. Powiązań mnóstwo, nie wiadomo, kto gra uczciwie a kto próbuje admina w misia zrobić.
Reasumując - rejestracja wszystkich możliwych zdarzeń + porządne narzędzie do ich porównywania...

EDIT. Po za tym, możemy u gracza wymóc niewyłączanie/nie kasowanie cookie... kasujesz, nie grasz.

Ten post edytował Kshyhoo 5.02.2010, 12:01:37


--------------------
Go to the top of the page
+Quote Post
erix
post
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
1. Gracz deklaruje, że gra z jednego komputera i przeglądarki, zatem ustawiamy mu ciacho, które zapobiega założeniu drugiego konta
2. Gracz deklaruje, że ma stałe IP i tylko z niego będzie grał

Zapomnieliście chyba o ADSL...


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
andycole
post
Post #10





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 14.12.2004

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


erix, dokladnie, zmienne IP

czyli z tego co widze brak sposobu bez sprawdzania logow smile.gif

BTW. Moja gra polega na glosowaniu co X minut na Y druzyne, wiec o zadnej pomocy user userowi nie ma mowy w tym kontekscie
Go to the top of the page
+Quote Post
erix
post
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Zostaje chyba tylko rejestracja kont i sprawdzanie adresów...


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
altruista2
post
Post #12





Grupa: Zarejestrowani
Postów: 127
Pomógł: 32
Dołączył: 8.02.2010

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


Niestety prawda jest taka że jedyna metoda obrony przed multikontami nazywa się:

CZŁOWIEK

Może nie wnoszę do tematu nic nowego, ale niech nikt się nie łudzi że się obroni przed spamem z automatu.

Chyba że masz "fajnych" użytkowników i sami Ci będą raportować, że ktoś robi multikonta smile.gif

A jeśli chodzi o adres IP, to kompletnie trzeba sobie to wybić z głowy, ponieważ jeśli np. ja jestem w podsieci to jest klops.
Np. teraz korzystam z usług generacji (sieć osiedlowa) i nie ma szans żebym sobie coś ściągnął z rapidshare (~500 użytkowników -> 1 adres IP)

Ten post edytował altruista2 9.02.2010, 01:16:00


--------------------
Jeśli Ci pomogłem kliknij pomógł. W ten sposób temat zaświeci się na żółto i użytkownicy którzy pomagają nie będą musieli niepotrzebnie klikać. Dziękuję.

"Pomaganie"
Go to the top of the page
+Quote Post
andycole
post
Post #13





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 14.12.2004

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


hmn, a uzywajac innych jezykow?
np java? zapisac gdzies na kompie klienta informacje ze ma juz jedno konto?
Go to the top of the page
+Quote Post
erix
post
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A użyszkodnik wcale nie ma obowiązku instalować czegokolwiek. Poza tym, zawsze to może wyrzucić.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
andycole
post
Post #15





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 14.12.2004

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


jezeli chce zagrac bedzie zmuszony zainstalowac...

ale od strony technicznej da rade?
nakieruje ktos w jaka strone isc? jaki jezyk? serwer? manual jakis?
Go to the top of the page
+Quote Post
Van Pytel
post
Post #16





Grupa: Zarejestrowani
Postów: 150
Pomógł: 6
Dołączył: 3.03.2010

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


Byś musial zrobić gre na kompa np: w C nie przez przegladarke, dać jakiś plik z hashem - unikatowy dla kazdego user, lub w rejestrze jakis zapis, ale to i tak Ci niewiele da bo jak polapia sie to zaczna lamac i beda mogli robic konta.
Go to the top of the page
+Quote Post
vokiel
post
Post #17





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Jest taki projekt Panopticlick, który sprawdza unikalność użytkownika. Warto się przyjrzeć jakie informacje zbiera, może być pomocny w takiej sytuacji


--------------------
Go to the top of the page
+Quote Post
andycole
post
Post #18





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 14.12.2004

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


Van Pytel, gra juz istnieje... i zalezy mi jedynie na malej edycji

vokiel, dzieki, przyjrze sie

a jakby za pomoca apletu java zapisywac plik gdzies na kompie usera? czy antywiry nie beda tego blokowac?
Go to the top of the page
+Quote Post
erix
post
Post #19





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
a jakby za pomoca apletu java zapisywac plik gdzies na kompie usera?

Kto będzie chciał nabić, zwyczajnie to skasuje albo odpali w sandboksie, który nawet nie zapisze niczego na HDD.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Zyx
post
Post #20





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Wszyscy, jak równo, zabieracie się do problemu od zupełnie złej strony. Zamiast kombinować, jak koń pod górę, siądźcie z boku i zastanówcie się, co chcecie osiągnąć i co właściwie robicie.

Pomogę trochę. Chcecie wiedzieć, czy dana osoba, np. Jasio z Warszawy, ma konto w naszej grze. Tymczasem we wszystkich metodach identyfikujecie komputer, a nie tego, kto przed nim siedzi. Jak łatwo zauważyć, nie jest to to samo - jedna osoba może korzystać z wielu komputerów, jeden komputer może być używany przez wiele osób. Możecie zablokować skutecznie jakiś komputer, ale w ten sposób nigdy nie zablokujecie jego użytkownika.

Aby jednoznacznie zweryfikować osobę (a nie jej komputer), musicie oczywiście wykorzystać informacje biometryczne, czyli np. linie papilarne, skan źrenicy oka, rozkład włosów na klacie czy co tam jeszcze jest w zanadrzu, i powiązać je z kontem. Wtedy zarówno przy logowaniu, jak i przy rejestracji, badacie czy danego skanu nie ma już w bazie. W pierwszym przypadku posłuży on do zalogowania się na konto (dzięki temu osoba będzie mogła logować się z dowolnego komputera), zaś w drugim, jeśli uzyskamy trafienie, będziemy wiedzieli, że osoba ma już konto i zablokujemy ją. Jedyną potencjalną formą ataku jest przechwycenie strumienia danych biometrycznych, co może nastąpić w trzech miejscach:
- Przez sieć,
- Na komputerze ofiary,
- Podczas transmisji z czytnika elektronicznego do komputera.

Sieć bardzo prosto można zabezpieczyć kryptografią, natomiast z komputera mogą ją wychwycić trojany. Być może, gdyby czytniki na to pozwalały, dałoby się zrzucić kryptografię na elektronikę czytnika - wtedy ewentualny atak musiałby polegać na podmienieniu cudzego komputera, co już w większości przypadków nas będzie satysfakcjonować.

Co, że science-fiction jakieś wypisuję? Dla mnie cały ten temat to czyste fantasy smile.gif. Nie ma 100% skutecznej metody, zwłaszcza jeśli ma ona opierać się na identyfikowaniu komputera, a nie człowieka. Na to drugie jednak się nie zanosi z powodu braku skanerów biometrycznych w większości domowych komputerów, o wsparciu przeglądarek nie wspominając...


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 19:11