ArnisR Posted August 2, 2012 Report Share Posted August 2, 2012 (edited) Situācijas apraksts: Tātad ir HTML5 Canvas spēle, - visas darbības tur notiek ar JavaScript! Lai varētu saglabāt spēles rezultātus u.tml., tiek veikts AJAX pieprasījums PHP apstrādes failam, kurš savukārt ievieto padotās vērtības datubāzē. Jautājums: Kā uzlabot spēlēs drošību pret negodīgiem spēlētājiem, kā panākt to, lai rezultātus būtu iespējams saglabāt tikai tādā gadījumā, ja tie nāk no spēles? Paldies! Edited August 2, 2012 by ArnisR Quote Link to comment Share on other sites More sharing options...
briedis Posted August 2, 2012 Report Share Posted August 2, 2012 Tas atkarīgs no dažādiem faktoriem. Ja visa spēle notiek klienta pusē, un tikai beigās tiek sūtīts gala rezultāts - tu nekad nevari būt drošs, kāds patiesībā bija rezultāts. Ir vēl dažādi varianti, bet nu būtu jāzina, par kādu spēli tieši ir runa, kāda ir tās specifika - kas ir "gājiens", kas nosaka rezultātu, utt. Quote Link to comment Share on other sites More sharing options...
codez Posted August 2, 2012 Report Share Posted August 2, 2012 Vari mēģināt ik pa laikam sūtīt uz serveri starprezultātus, pārbaudīt to atbilstību realitātei un tikai veiksmīgu starprezultātu gadījumā pieņemt gala rezultātu. Quote Link to comment Share on other sites More sharing options...
aaxc Posted August 3, 2012 Report Share Posted August 3, 2012 Paga, tu nevari DB uzstaadiit kaadu mainiigo, kas inicializeejas, kad speeleetaajs saak darbiibu un kuram jaasakriit, kad vinjsh vinju beidz? Respektiivi, liidziigi kaa session id? Quote Link to comment Share on other sites More sharing options...
codez Posted August 3, 2012 Report Share Posted August 3, 2012 Tak "hakeris" jau var sākt reālu spēli, ar developer tooli pārlabot punktus un nosūtīt, vai paskatīties, kas tie par mainīgajiem, kas tiek sūtīti līdzi un nosūtīt tos. Visdrošākais variants ir simulēt visus pēli arī uz servera, teiksim ierakstīt katru spēles soļa lietotāja darbību un ar tādu pašu algoritmu iziet cauri uz servera un saskaitīt punkuts, bet tas ir pārāk dārgi, tāpēc vienkāršs variants ir testēt spēles starprezultātus, piemēram, ik pēc 3 sekundēm, vai kāda cita spēlei raksturīga intervāla un notestēt to atbilstību. Piemēram, ja tā ir čūska, tad var pēc katra apēstā kubiņa nosūtīt uz serveri pārbaudi, kurā pārbauda un cik punkti bija iepriekšejā reizē, cik tagad, cik ilgā laikā reāli bija aiziet līdz kubiņam (taisnā distance/max ātrumu), utt. Quote Link to comment Share on other sites More sharing options...
e-remit Posted August 3, 2012 Report Share Posted August 3, 2012 No pieredzes var teikt, ka lielu daļu čīteru tiešām var atrast tieši ar starprezultātiem, kā codez teica. Tomēr, 100% drošību iegūt ar JS nevarēs, jo vienmēr var uzrakstīt kodu, kas imitē tavu JS kodu, jo nav jau problēmu tavu JS kodu apskatīt. Pieredze rāda, ka vienmēr būs cilvēki ar dažādiem programmēšanas skilliem, kam interesēs pārspēt spēles izstrādātājus. Ja tas ir naudas jautājums, tad skaties, kur ir tā robeža, kad čīteri spēj nodarīt finansiālu kaitējumu un piever acis uz dažiem sīkiem gadījumiem. Quote Link to comment Share on other sites More sharing options...
v3rb0 Posted August 3, 2012 Report Share Posted August 3, 2012 Visas darbības notiek serverī, klients tikai parāda ko serveris liek un mēģina uzminēt ko serveris varētu likt darīt laaag gadījumā. Bet tas neizslēdz iespēju js'ā botu uztaisīt un tā šmaukties. 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.