![]() |
![]() |
![]() ![]()
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. Jakie macie sprawdzone sposoby, by takie zabezpieczenie działało wszędzie i skutecznie?
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. |
|
|
![]() |
![]() ![]()
Post
#2
|
|
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 02:07 |