Avatar billede xWeezor Juniormester
01. august 2016 - 18:09 Der er 10 kommentarer

Kan man lave alt om til php fra javascript?

Hej jeg har et javascript til et spil der har virkeligt mange linjer code men det kan nemt hackes så tænkte om det overhovedet var mulligt at lave det om til php

Her er koden: http://pastebin.com/QyDbVnXz
Avatar billede arne_v Ekspert
01. august 2016 - 18:18 #1
Det kan man vel.

Men:
1) det vil vaere et stort arbejde
2) flytte logikken fra client side til server side vil forvaerre performance

Hvorfor ikke bare bruge et minifier/obfuscator till at goere det mere vanskeligt at fuske med scriptet?
Avatar billede xWeezor Juniormester
02. august 2016 - 00:57 #2
Jeg forstår ikke lige den sidste del du skriver :-)
- William/xWeezor | 12 år
Avatar billede arne_v Ekspert
02. august 2016 - 01:37 #3
Avatar billede Slater Ekspert
02. august 2016 - 09:44 #4
Nu ved jeg ikke lige hvordan spillet fungerer, men jeg ser tegn i koden på, at der er noget bevægelse, bl.a. sætter den fps til 30 et sted. Og så nej, det kan på ingen måde lade sig gøre at lave om til PHP eller anden server side kode.

En minifier gør også meget, meget lidt for at forhindre fusk. Bortset fra variabelnavne kan det gøres pænt igen med en beautifier, og med en dev konsol kan enhver hurtigt sætte en høj score og lignende, uanset hvor obfuscated det er.

Så det korte af det lange er, nej. Du kan ikke lave browser-spil der ikke er lette at fuske med i åben, client-side teknologi, og du kan ikke lave spil med animation eller løbende eventhåndtering i server-side. Det var bl.a. derfor Flash var så populært til spil en overgang. Det proprietære, compilede format gjorde det langt sværere at fuske med.
Avatar billede xWeezor Juniormester
02. august 2016 - 22:39 #5
Kan det med score og shop laves i php og mysql?
Avatar billede Slater Ekspert
03. august 2016 - 08:05 #6
Du er nok nødt til at vise os spillet køre så. Det er svært at forestille sig, hvordan det egentlig fungerer og ser ud, udelukkende ud fra koden.
Avatar billede xWeezor Juniormester
03. august 2016 - 21:41 #7
http://v2.hashclicker.cu.cc Det her er den nyeste version
Avatar billede Slater Ekspert
04. august 2016 - 12:50 #8
Okay, bare en clicker. Teknisk set kunne du godt lave kald frem og tilbage til serveren for at håndtere shoppen, men det eneste det giver mening for, er at gemme dataene, så man kan komme tilbage og spille senere. Det hjælper absolut intet på at forhindre snyd, da man stadig bare kan ændre sin score og sine køb client-side og sende det til serveren, og den vil ikke have nogen mulighed for at vide, om du har tjent det på ærlig vis eller snydt.
Avatar billede xWeezor Juniormester
04. september 2016 - 17:09 #9
Kan man ikke lave det sådan man ikke kan snyde sig til flere penge fordi har nemligt tænkt mig at lave en shop hvor man kan købe flere penge i spillet for rigtige penge
Avatar billede Slater Ekspert
04. september 2016 - 18:37 #10
Nej, desværre - ikke på en relativt nem måde.

Alt hvad der foregår på klienten kan manipuleres nemt. Du kan kun sikre ting, ved at lade dem foregå på serveren. Men for at hente og sætte data på serveren, kræver det stadig en eller anden form for forbindelse. Den mest almindelige form for bindelse i dag er et AJAX kald, men sådan et tager tid. An på flere faktorer, kan det tage flere sekunder at forbinde - og det gør det ubrugeligt i et spil, hvor alting foregår hurtigt.

Husk at det ikke er nok at fortælle servren, at nu har brugeren så og så mange penge, for så kan man bare ændre antallet af penge på klienten og sende det til serveren. Du er nødt til at sende alle beregningerne, der GIVER pengene til serveren. Hvis man f.eks. skal klikke på noget 100 gange for at få 100 kr i spillet, så er det hvert eneste klik der skal sendes, og serveren skal så også beregne, om der er gået tilstrækkeligt længe siden sidst, til at det rimeligvis er et menneske og ikke et script der klikker.

Netkode er ikke nemt at skrive. Alle spiludviklere, der har lavet multiplayerspil, kan fortælle dig masser om det. Det er et helvede at forhindre snyd.

Du kan dog komme nogenlunde tæt ved at bruge det, der hedder websockets. Det er en relativt ny teknologi til web, hvor du har en konstant forbindelse åben mellem server og klient, hvilket giver dig muligheden for hurtigt at sende data frem og tilbage. Men stadig, det løser ikke alle problemer, og det er besværligt at implementere ordentligt.
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

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