Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Ankieta -> wkopiować plik po głosowaniu
Forum PHP.pl > Forum > Przedszkole
Mary$
Czytając tematy o banowaniu IP niestety nie doszukałem sie rozwiązania mojego problemu. A mianowicie: mam ankietę, która po głosowaniu daje delikwentowi ciacho, a potem sprawdza jego obecność. Na moje nieszczęście w ankiecie głosuje codziennie jakieś dziecko nieostrady, które albo cookies ma wyłączone, albo je umiejętnie kasuje. pomyślałem, że można mu na dysk wkopiować jakiś mały plik tekstowy z wartością taka, jaką daję dla cookies. tylko pytanie jest takie: czy wg naszego prawa mogę użytkownikowi wkopiować na dysk coś bez jego wiedzy?
maryaan
cos krecisz, jakby kasowal albo mial wylaczone to by glosowal non stop a jesli glosuje codziennie to pewnie tak ustawiles ciacho ze po prostu wygasa.

Jesli zas chodzi o pytanie, to nie wiem jak jest w swietle prawa, ale wiem ze w php nie jestes w stanie wyslac na moj dysk zadnego pliku bez mojej wiedzy
Mary$
Cytat(maryaan @ 7.04.2007, 11:17:32 ) *
cos krecisz, jakby kasowal albo mial wylaczone to by glosowal non stop a jesli glosuje codziennie to pewnie tak ustawiles ciacho ze po prostu wygasa.

czasami głosuje kilka razy dziennie, ale na to mam sposób -> zrobiłem skrypt który wywala głosy z takiego samego IP
devnul
skoro to dziecko neostrady to ma zmienny Ip ale skoro potrafi wyłączyć cookies to już nie może być takie zwykłe dziecko neostrady - lepiej pokaż kod bo bardziej prawdopodobne jest że coś sknociłeś (o ile to faktycznie jest dziecko neostrady) a tak jak kolega wyżej pwiedzial - pliku userowi na dysk nie wyślesz (przynajmniej bez wykorzystania "czarnej magii")
Mary$
  1. <?php
  2. IF ($_POST['action'] == 'vote'){
  3. IF ((!IsSet($_COOKIE[ank_cookie_name]))&&(IsSet($_POST['vote']))&&($ok))
  4. {
  5. setcookie(ank_cookie_name, $_POST['vote'], time()+30*86400); // ustawianie cookies
  6.  
  7. $sql = 'INSERT INTO ankieta VALUES (NULL,0,"'.$_POST['vote'].'","'.$_SERVER['REMOTE_ADDR'].'","'.gethostbyaddr($_SERVER['REMOTE_ADDR']).'",NOW(),"'.$_SERVER['HTTP_HOST'].'")';
  8. mysql_query($sql);
  9.  
  10. Echo '<table cellpadding="0" cellspacing="0" id="table10" style="margin-left:auto;margin-right:auto;width:200px;">
  11. <tr>
  12. <td valign="top" class="MenuHeadRow" style="height:21px"><b>..:: Ankieta ::..</b></td>
  13. </tr>
  14. <tr>
  15. <td class="MenuMiddleRow" valign="top">';
  16.  
  17. $i = 0;
  18. Echo '<p align="left"><B>'.$pytanie.'</B><br /><br />';
  19. while ($i < count($odp)){
  20. $sql = 'SELECT * FROM ankieta WHERE AnkVote = "'.$odp[$i].'"';
  21. $wynik = mysql_query($sql);
  22. $ilosc = mysql_num_rows($wynik);
  23. Echo '<b>'.$odp[$i].'</b> ('.$ilosc.')<br />';
  24. $i++;
  25. };
  26. Echo '<br />
  27. <u><b>Twój głos: </b>'.$_COOKIE[ank_cookie_name].'</u></p><br /></td>
  28. </tr>
  29. </table>
  30. ';
  31. };
  32. };
  33. ?>

$ok - sprawdza, czy wyświetlono na poprawnej domenie
ank_cookie_name - zasetowane na początku skryptu
wiem, że to dziecko neostrady, bo znam IP i host, a na dodatek wiem kto to jest, ale nie mogę wyperswadować tej osobie, że ma przestać :/
devnul
połącz różne rozwiązania: sprawdzanie IP, cookie (np musi być wymagane do głosowania) zapis przeglądarki i systemu operacyjnego - wydłużenie czasu trwania sesji itd po połączeniu zwykły neokid sobie rady nie da
Mary$
Cytat(devnul @ 7.04.2007, 13:30:32 ) *
połącz różne rozwiązania: sprawdzanie IP, cookie (np musi być wymagane do głosowania) zapis przeglądarki i systemu operacyjnego - wydłużenie czasu trwania sesji itd po połączeniu zwykły neokid sobie rady nie da

Cytat
prawdzanie IP, cookie (np musi być wymagane do głosowania) zapis przeglądarki i systemu operacyjnego - wydłużenie czasu trwania sesji


hmmm, jak sprawdzić IP i cookie (po wejściu dostaje na dzień dobry ciacho "PHPSESSID") wiem, ale reszta... blink.gif
devnul
w bazie trzymaj dane na temat ip/session_id/browser/os/lastvisit/ciacho - jeśli się zgodzi większość czynników ( z naciskiem na sesje i ciacho) to nie powinno być problemu z detekcją inaczej to troche ruletka - no ale innej metody raczej nie ma
Mary$
Cytat
os

co to takiego i jak to wykryć (jedyne co mi przychodzi do głowy to Operation System winksmiley.jpg)?
Zeman
Cytat(Mary$ @ 7.04.2007, 13:39:02 ) *
hmmm, jak sprawdzić IP i cookie (po wejściu dostaje na dzień dobry ciacho "PHPSESSID") wiem, ale reszta... blink.gif



a reszte... zobacz print_r($_SERVER);


No to ma Pan kłopot. Zakładam, że ankieta po logowaniu nie wchodzi w grę ;) Teoretycznie żeby plik zapisać na dysk raczej trzeba by jakiś applet javy zrobić i na dodatek podpisany. Jeśli już się posuwać do appletu javy to równie dobrze można odczytać MAC jego karty.

Być może, jeśli gość wchodzi przez IE i nie zablokował ActiveX, to być może udało by się coś wykombinować znaczy się któryś obiekt ActiveX utworzyć w JavaScripcie i coś poprzez taki obiekt. Teraz mi nic sensownego nie przychodzi do głowy który ze standardowych w windzie ActiveX mógłby się przydać.

Im lepsza jest ta złośliwa osoba, tym trudniej będzie temu zaradzić, jak się trafi na odpowiednią osobę to nic się nie da zrobić.

Już mam pewną myśl, ale nie będę pisał bo gra nie warta świeczki a sposób dość trudny technicznie. Tylko wspomnę że chodzi o IE który udostępnia kupę interfejsów i jeden z nich o ile pamiętam zawierał metody do zapisu na dysk. Gra nie warta świeczki zwłaszcza, że tylko strona na tym ucierpi, bo to już podchodzi pod działanie wirusów.
devnul
Mary$: os to tak jak piszesz skrót od Operating system
Łukasz O.
jest małe obejście - wystarczy schować na stronce flash'a 1x1px, ustawiać mu SharedObject z czasem np. tydzień i po każdym wejściu sprawdzać, czy ktoś już z tego kompa nie wchodził - wtedy mu nawet zmienne IP nie pomoże (tak - flash pozwala na zapisywanie drobnych plików podobnych do ciasteczek - można to wyłączyć, ale standardowemu userowi nie przychodzi do głowy szperać po ustawieniach flash'a w przeglądarce)

PS. jeśli komuś będzie się chciało zgłębić ten temat a potem przeszukać swojego kompa w poszukiwaniu flashowych ciasteczek, najprawdopodobniej zdziwi się ile tego ma już na swojej maszynie nic o tym nie wiedząc:P
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.