2010-02-15 16 views
5

Nel mio gioco JavaScript (creato con jQuery) ho la posizione del giocatore memorizzata in un database. Quando il personaggio si muove, invio semplicemente la richiesta all'URL specyfic, I.E. mysite.com/map/x1/y3 (dove la posizione di un personaggio è x = 1, y = 3).sicurezza ajax nei giochi javascript

L'url invia coordinate al database e controlla se ci sono altri giocatori vicino al nostro. Se sì, invia anche oggetti JSON con nome e coordina di quei giocatori.

E qui è la mia domanda - come proteggerlo? Qualcuno potrebbe esaminare il mio codice JavaScript e preparare l'url come mysite.com/map/x100/y234 e lo "teletrasporterà" su un altro lato della mappa.

+0

quello che stai chiedendo è completamente e assolutamente impossibile. – rook

risposta

0

Si può offuscare il codice sorgente JavaScript. Questo almeno scoraggerà i cheat casuali, tuttavia probabilmente non c'è modo di renderlo completamente sicuro usando javascript.

+0

Non esiste una cosa come la sicurezza se non l'oscurità. Per attaccare questo sistema userei la tamperdata, non mi interessa come appare la sceneggiatura. – rook

8

Qualsiasi dato/calcolo elaborato in JavaScript nel browser non sarà sicuro poiché tutto il codice viene eseguito sul computer locale. Consiglierei di elencare tutti i parametri fondamentali per una buona esperienza di gioco, come la posizione del giocatore, il punteggio, le risorse ... e calcolare la gestione di questi parametri sul lato server. Si raccolgono solo gli input utente dal browser e si invia lo stato aggiornato al browser per la visualizzazione.

Anche se si sceglie di calcolare alcuni valori sul lato del browser per evitare la latenza, non si dovrebbe tenerne conto per lo stato globale condivisa dai giocatori, e si dovrebbe risincronizzare modalità locale, con lo stato globale - sempre in direzione globale per locale - di volta in volta.

Come in una tipica gestione dei moduli, è necessario verificare anche che i valori inviati dal browser per gli input utente rientrino in limiti ragionevoli, ad es. il movimento relativo in un secondo è inferiore a una certa distanza.

+0

+1 Buon consiglio! –

Problemi correlati