Avatar billede RasmusRR Nybegynder
25. december 2012 - 17:59 Der er 12 kommentarer og
1 løsning

Send sikkert variabler til server

Hvordan sender man variabler til sin server uden at brugerne kan ændre i dem?

Jeg har lavet nogle små spil, hvor ens score bliver gemt i en database, så der kan laves en highscore. Problemet er bare at nogle brugere, ved hjælp af en tilføjelse til firefox, kan ændre i den score, der bliver sendt til databasen.
Hvordan forhindre jeg det??

/Rasmus
Avatar billede arne_v Ekspert
25. december 2012 - 18:06 #1
Ved ikke at lade browser sende den.

Naar de spiller gemmer du score i session og naar den skal gemmes saa henter du den fra session.
Avatar billede RasmusRR Nybegynder
25. december 2012 - 18:32 #2
Kan du give et eksempel på hvordan jeg gør det, så den gemmer sessionvariablen når brugeren har gennemført et spil?
Avatar billede olebole Juniormester
25. december 2012 - 18:58 #3
<ole>

Hvad der foregår i browseren, er fuldstændig åbent. Hvis dit spil f.eks. fyrer en form af mod serveren, når spillet er færdigt - og spillets pointantal/score bliver sendt i et INPUT felt - vil der altid kunne rettes i pointantallet. Også selvom feltet er hidden, og brugeren ikke umiddelbart kan skrive i det.

En form kan der altid manipuleres med, eller et script kan simulere en form og sende de ønskede data.

Hvis du vil lave et spil, som brugeren ikke kan fiddle med, må du gøre det i en teknologi, der ikke 'kan pilles i' - og det kan være overordentlig kompliceret på WWW  =)

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
25. december 2012 - 20:04 #4
Som jeg forstår det, afvikles spillet alene på klienten, og data sendes til serveren.

Det bedste vil være hvis point-beregningen kan foregå på serveren. F.x. hvis det handler om at finde en optimal vej, som giver point, så sender man brugerens vej til serveren, og lader den beregne point.

Dermed er der ingen grund til at stole på noget på klienten.

Kan du ikke det, så er der ingen 100% sikker vej. Det er ikke sikkert, det behøver være 100%, så et par muligheder:

1) Kryptere point-tallet, og dekryptere på serveren. Problemet er at krypteringsalgoritme og dermed kodeord, skal være på klienten, og dermed vil kunne aflures.

2) Send point-tallet som klartekst, men en passende hash-værdi som kontrol. Det kunne være (ex: point=117):  md5("nogetsuperhemmeligt:117"). Samme problem som 1)  (men lad være med at sende md5("117") - det vil kunne aflures for nemt)

1) og 2) holder nok script-kiddies på lang afstand. Men ingen af dem er sikre, som sådan.
Avatar billede arne_v Ekspert
26. december 2012 - 02:05 #5
Det er ikke svaert at lave en sikker loesning. Spil logikken skal bare vaere server side.
Avatar billede arne_v Ekspert
13. januar 2013 - 04:28 #6
rasmus?
Avatar billede RasmusRR Nybegynder
10. marts 2013 - 23:32 #7
Beklager jeg først svarer nu, men gik helt død i projektet..

Ved mine spil skal man løse nogle opgaver på tid, derfor kan det ikke lade sig gøre på serversiden :-/

Jeg må i gang med nogle algoritmer. Overvejer at sende fx 100 variabler med tiden (med hver sin algoritme) afsted, og så på server siden kun bruge en bestemt af dem.

Lydet det helt dumt??

/Rasmus
Avatar billede erikjacobsen Ekspert
11. marts 2013 - 00:07 #8
Det er vel ikke muligt at sige, om det er fornuftigt i din situation, men det er altså ikke et sikkert system.

Det er "security by obscurity".
Avatar billede RasmusRR Nybegynder
30. marts 2013 - 14:15 #9
Jeg tror vis det er på tide at lukke. Vil I alle være venlige at oprette et svar så deler jeg ud.

mvh
Rasmus
Avatar billede erikjacobsen Ekspert
30. marts 2013 - 14:21 #10
Ingen point til mig, tak.
Avatar billede olebole Juniormester
30. marts 2013 - 15:27 #11
Heller ikke til mig, tak  =)
Avatar billede arne_v Ekspert
31. marts 2013 - 23:44 #12
hvis du synes
Avatar billede RasmusRR Nybegynder
01. april 2013 - 01:03 #13
Mange tak for jeres indspark :-)

mvh
Rasmus
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester