Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML]Zabezpieczenie przed manipulacją formularzem
Wilu88
post
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 6
Dołączył: 7.03.2010

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


Witam

Mam oto taki problem. Robię moduł głosowania na najlepszego gracza. Formularz po stronie użytkownika wygląda następująco:

|Zawodnik|Ocena (pole select)|Zawodnik ID(pole input atrybut hidden)|


Sprawa wygląda następująco po naciśnięciu przycisku submit w pętli odczytuję ID zawodnika i wybraną dla niego ocenę i wysyłam do bazy. No ale tu jest pewien problem, bo przecież mając np Firefoxa bez problemu możemy manipulować zawartościami pól ukrytych a tym samym, ktoś mógłby ocenić 10 razy tego samego zawodnika, lub gracza, którego nie ujęliśmy w głosowaniu.

Macie jakiś pomysł jak się przed tym zabezpieczyć?

Chodzi mi jeszcze po głowie żeby wrzucić id zawodników przy generowaniu formularza do sesji i później je porównać z tym co jest w ukrytych polach, czy ma to jakiś sens?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
MacDada
post
Post #2





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 24.06.2010
Skąd: Sopot

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


Użyj sesji. Przy wejściu na stronę użytkownik będzie generował ciasteczko. Teraz gdy użytkownik głosuje na zawodnika to po stronie serwera sprawdzasz w sesji info o tym. Przechowujesz np tablicę z ID zawodników. Jeśli id jest w sesji to nie dodajesz głosu.
Go to the top of the page
+Quote Post
everth
post
Post #3





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Możesz użyć sesji, możesz użyć sum kontrolnych, możesz użyć ciasteczek.

Mi pierwsze co wpadło do głowy to dodanie ukrytego pola checksum w formularzu z sumą np. md5 liczoną po wierszu w tabeli+jakaś sól. Później jak masz id to liczysz sumę po tym wierszu i sprawdzasz do sumy kontrolnej - zgadza się to nie ma manipulacji (przy założeniu że pola w tabeli nie zmienią swojej zawartości po drodze).

Które rozwiązanie wybierzesz - już twoja wola i umiejętności.

EDIT: Drugie spojrzenie - rozwiązanie z sumą ma wadę - zbyt łatwo powiązać id <=> suma kontrolna. Lepiej jednak użyć sesji.

Ten post edytował everth 11.08.2010, 12:20:34
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 4.10.2025 - 01:31