mickys Posted January 23, 2011 Report Share Posted January 23, 2011 Izveidota "Spēle 15". http://bez-maksas.lv/spele15 Domāju par Topa veidošanu, bet tagad radies jautājums, kā nodrošināties pret ļaunprātīgu lietotāja rīcību. Jeb kā izveidot sistēmu, kas pārbauda vai tiešām ir izpildīta mīkla? Kaut kādu identifikatoru sūtīt vai ko darīt? Lietotāji tiks identificēti ar Draugiem.lv pasi Quote Link to comment Share on other sites More sharing options...
KarlisBa Posted January 23, 2011 Report Share Posted January 23, 2011 Piefiksē datus tikai tad, kad ir iziets, un ja to dara caur dr.lv pasi, tad tur es nespēju iedomāties, kur tu saskati iespēju šmaukties. Starp citu, forša spēlīte, nespēju atminēties, kad es viņu pēdējo reizi spēlēju, un ar pirmo piegājienu, protams, kad sapratu, ka skaitās laiks, izgāju 2:31min, toties paņemot otru piegājienu tas man prasīja 22sec, tā kā tur vajadzētu piestrādāt, lai pārkārto vienādi vai vismaz daudz sarežģītāk. :) Quote Link to comment Share on other sites More sharing options...
bubu Posted January 23, 2011 Report Share Posted January 23, 2011 KarlisBa: Nezini kā šmaukties? Piemēram javaskriptā prosta URL'barā ierakstī laika uzstādīšanu uz patvaļīgu skaitli pie spēles iziešanas. Vai arī masīvā ierakstī skaitļus korektā veidā, un spēle pati fiksēs uzvaru. Quote Link to comment Share on other sites More sharing options...
briedis Posted January 23, 2011 Report Share Posted January 23, 2011 Hmm, viens risinājums ienāca prātā. Php uzģenerē laukumu, pieglabā laiku, un kontrolsummu no laika. teiksim $token = sha256($serializēts_laukums . $generācijas_laiks . $sāls); Nodod šos datus JS'am, pēc uzdevuma veikšanas JS nodod atpakaļ serverim tokenu, sākotnējo laukumu, risinājuma gaitu (soļus), aizņemto laiku. Serveris pārbauda, vai laukums ir autentisks, vai risinājuma soļi noved pie pareizas atbildes. Salīdzina laiku starp risinājuma iedošanu lietotājam, atbildes saņemšanu un JS risinājuma laiku. Protams, kaut kāda kļūda būs pateicoties interneta latencei, bet tomēr. Kā šāds variants? Quote Link to comment Share on other sites More sharing options...
codez Posted January 24, 2011 Report Share Posted January 24, 2011 + briedim - labi izdomāts. Šķiet vieniegais veids kā šmaukties brieža variantā, ir uztaisīt skriptu, kurš automātiski saliek. Quote Link to comment Share on other sites More sharing options...
mickys Posted January 24, 2011 Author Report Share Posted January 24, 2011 http://bez-maksas.lv/spele15/?limenis=100 Tiem, kam gribējās grūtāku.. :) Nu, salīdzināšana jau notiek javascriptā, vienkārši biju domājis, ka pabeidzot spēli, kā tagad tiek uzmests alert();, tā pat tiktu izsaukts pieprasījums uz kādu URL, kas pieraksta, kāds lietotājs un viss pārējais. Bet tad rodas problēma, ka varētu sūtīt datus uz to URL vienkārši caur address bar, nevis pabeidzot spēli. Quote Link to comment Share on other sites More sharing options...
Kaklz Posted January 24, 2011 Report Share Posted January 24, 2011 Vienīgais pareizais risinājums ir laiku skaitīt servera pusē. Atveram firebug, ierakstam JS konsolē count=false;, saliekam puzli, atstājot vienu gājienu JS konsolē ierakstam count=true un saliekam līdz galam. Quote Link to comment Share on other sites More sharing options...
briedis Posted January 24, 2011 Report Share Posted January 24, 2011 Vienīgais pareizais risinājums ir laiku skaitīt servera pusē. Atveram firebug, ierakstam JS konsolē count=false;, saliekam puzli, atstājot vienu gājienu JS konsolē ierakstam count=true un saliekam līdz galam. Mhm, tāpēc es arī savā variantā piedāvāju čekot laiku servera pusē, kad laukums ir ģenerēts un kad ir saņemta atbilde, un vēl salīdzināt ar JS padoto lauku. Ja atšķirība starp šiem laikiem maza, ņemam JS padoto laiku, ja liela, tad vai nu lēns internets vai arī kāds šmaucas :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.