Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zabezpieczenie ankiet przed multigłosowaniami, w Operze nie działa
Blackhole
post 23.06.2010, 17:56:19
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

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


Hej!
Zrobiłem mechanizm do głosowania w ankietach. Przed wielokrotnym głosowaniem zabezpieczam się ciastkiem i adresem IP. U mnie na FF działa dobrze, na IE podobno też.
Jeden z użytkowników napisał mi jednak, że w Operze można głosować wiele razy, jeśli po oddaniu głosu wciśnie się przycisk WSTECZ. Pisze, że to może wina innego silnika i że
Cytat
Jeśli chcesz zrobić sobie dowolną ilość głosów wystarczy przy pierwszym głosowaniu w przeglądarce kliknąć wstecz i możesz ponownie głosować. Licznik sumuje każdy raz jako kolejny głos.
Sprawdziłem to na kilku sondach, na LK dodałem 50 głosów(zweryfikuj sobie jak masz możliwość, kliknięcia co 0.5s).
Wszystko odbyło się na Operze w wersji 10.54, na IE wszystko w porządku.

Sprawdzałem ciasteczka, i z tego co widzę nawet jak wyczyściłem bufor ciasteczkowy, to rozpoznawał poprawnie sondaże.
Po za tym w normalnych warunkach działa dobrze, tzn zagłosować można tylko raz. Chodzi tylko o sytuację wyboru za pierwszym razem, cofnięcia się do strony poprzedniej i głosowanie jest ponownie dostępne. Z punktu widzenia kodu w serwerze ta sama sesja nie powinna być zaliczania jako nowa.
Prawdopodobnie problem jest w samej Operze, ma inny silnik niż IE, i prawdopodobnie symuluje cofnięcie realnie, czyli z zmianom kodu ciasteczka na poprzednie. W IE kod ciasteczka pozostaje ten sam, i jest modyfikowany tylko przez serwer.
Jakie macie sprawdzone sposoby, by takie zabezpieczenie działało wszędzie i skutecznie?


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
tehaha
post 23.06.2010, 18:02:57
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


no jeżeli problemem jest tylko luka w postaci przycisku wstecz, to możesz po pierwszym wysłaniu formularza ustawiać zmienną sesyjną np jakieś $_SESSION['sent'] = true;
i przy każdym wysłaniu sprawdzasz czy ta zmienna jest ustawiona, jeżeli tak to nie uznajesz głosu
Go to the top of the page
+Quote Post
Wicepsik
post 23.06.2010, 19:39:36
Post #3





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Stwórz sobie w bazie tabele która będzie przechowywała adresy IP osób które już zagłosowały. Gdy użytkownik zagłosuje w ankiecie sprawdzasz czy jego IP jest w bazie. Jeśli nie ma to zatwierdzasz ankietę, jeśli nie to wyświetlasz stosowny komunikat o tym, że już dana osoba głosowała w ankiecie.


--------------------
Go to the top of the page
+Quote Post
croc
post 23.06.2010, 19:53:38
Post #4





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Najskuteczniejszy sposób to głosowanie tylko dla zalogowanych bądź potwierdzanie głosu mailem (to ostatnie upierdliwe) laugh.gif Wszelkie inne sposoby są łatwe do oszukania, a IP nie jest do końca sprawiedliwe. IP to nie jest cecha osoby tylko sieci. Wyobraź sobie wielką kafejkę internetową, w której siedzą dwaj potencjalni respondenci. Obaj chcą zagłosować, ale nie mogą tylko dlatego, że przypadkowo korzystają z tej samej sieci.
Go to the top of the page
+Quote Post
Blackhole
post 24.06.2010, 09:08:12
Post #5





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

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


Co do tego IP i właściwości sieci macie rację. Poza tym na neostradzie (o ile wiem) często zmienia się IP, więc jej userzy mogliby częściej głosować.

Co myślicie o takim zabezpieczeniu?
- po zagłosowaniu ustawiam cookie, wpisuję też IP do bazy i ustawiam w sesji, że głos został oddany
- gdy ktoś usunie cookie, to przy kolejnej odsłonie strony sprawdzam, czy jego IP jest w bazie lub w sesji jest info o zagłosowaniu; jeśli tak, to ponownie ustawiam cookie
- gdy zmieni się IP usera, to sprawdzam, czy ma cookie lub info w sesji; gdy ma, wpisuję IP do bazy
- gdy zniknie info sesji, sprawdzam istnienie cookie lub wpisu o IP w bazie; gdy jest, ustawiam info w sesji


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
phpion
post 24.06.2010, 13:35:55
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




@up:
A co jeśli ktoś się rozłączy (zmieni adres IP) oraz usunie cookie? Jedyne sensowne i skuteczne zabezpieczenie to ograniczenie głosowania tylko dla zalogowanych użytkowników.
Go to the top of the page
+Quote Post
Blackhole
post 24.06.2010, 15:31:45
Post #7





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

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


Wykonanie tych 3 rzeczy na raz jest bardzo mało prawdopodobne, a jeśli już, to też zniechęcające do ingerowania w wyniki takim sposobem.
Ograniczenie głosowania tylko dla zalogowanych zmniejsza mocno ilość ankietowanych.

Ten post edytował Blackhole 24.06.2010, 15:32:51


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
erix
post 24.06.2010, 15:53:28
Post #8





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




Cytat
Wykonanie tych 3 rzeczy na raz jest bardzo mało prawdopodobne

Do pierwszego ataku (D)DoS, który będzie miał na celu zmanipulowanie wyników ankiety. Projektując cokolwiek, co wchodzi w interakcję z danymi od użytkownika ZAWSZE zakładamy NAJGORSZY możliwy przypadek.

Cytat
Ograniczenie głosowania tylko dla zalogowanych zmniejsza mocno ilość ankietowanych.

Pozostaje więc zbieranie wszystkich głosów i późniejsza analiza statystyczna (odstępy czasowe, etc).


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

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

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:11