Nascondere chiamate Ajax postato il 08/02/2010 17:08:52 nel forum programmazione, gdrcd, open source, hosting
Salve, sono un programmatore che sta collaborando alla creazione di una nuova land.
Per questa esperienza mi sono affidato alle chiamate Ajax, incontrandole a dire il vero per la prima volta, fino ad ora con ottimi risultati.
Tuttavia mi sono ritrovato difronte a un problema: usando firebug (io conosco questo ma ce ne sono mille di programmini simili) posso modificare le chiamate ajax e modificarne i parametri.
Per ora ho riscontrato il problema per il mercato, dove la chiamata ajax parte con id dell'oggetto e costo, io posso facilmente modificare il costo con firebug e quindi prendere l'oggetto senza spendere nulla.
Come posso rendere non modificabili le mie chiamate ajax ?
O anche non renderle visibili, ancora meglio.
Grazie in anticipo
Pagine → 1
08/02/2010 17:17:15 e modificato da dyrr il 08/02/2010 17:23:44
non è un problema solo di ajax, anche con un normale form in post e la possibilità di modificare "on the fly" l'id e il costo sopratutto dell'oggetto avresti il proble,a identico. per questo andrebbero controllati che parametri vengono mandati con la chiamata ajax.
Mi spiego con un esempio. nel tuo caso del mercato il passare il prezzo dell'oggetto come parametro è una cosa che andrebbe evitata. dovresti far passare solo l'id dell'oggetto alla pagina php e all'interno di questa far ricavare il prezzo dell'oggetto tramite una query di select con solo l'id (magari controllando che anche l'id dell'oggetto sia un id numerico e valido).
in questo modo anche se un pg cambia "on the fly" l'id dell'oggetto il prezzo viene lo stesso scalato.
Dipende poi dal gdr perchè potresti appunto dover fare dei controlli sull'id dell'oggetto per controllare che l'id sia all'interno di un range di oggetti disponibili perchè il pg non possa comprare oggetti non disponibili al mercato.
In sostanza comunque la regola è di controllare che qualsiasi dato che arrivi al server, venga da chiamata ajax, venga da form in post o da link in get sia del tipo e del range che dovrebbe essere.
Volendo essere paranoici si potrebbe anche controllare che errori di range strani dei parametri vengano salvati su log in maniera da poter risalire a possibili manipolaszioni dei dati e correggere le falle
08/02/2010 18:11:34
Se procedessi con un incapsulamento delle chiamate ?
Ovvero mando la prima chiamata ad un file php (di cui tramite firebug è reperibile il nome) che calcola il costo in base al'id che fornisco, e da qua ne faccio un altra che va al file che assegna l'oggetto, il cui nome stavolta non è conosciuto.
Dite che può andare ?
08/02/2010 18:35:48
nel tuo caso la soluzione è semplice come ti dicevo prima
- lo script invia la richiesta ajax al server inviando solo l'id
- la pagina php controlla che l'id sia di tipo valido vuoi con un is_numeric(), con intval(), con una regex o con il sistema che ti piace di piu
- una volta verificato il tipo di id e che sia nel range valido la pagina inizia a fare tutte le normali procedure dell'acquisto oggetto:
il recupero dei dati dell'oggetto tramite una query (prezzo oggetto, disponibilità al mercato, ecc)
il controllo se il pg ha abbastanza soldi per quell'oggetto
e una volta verificato il tutto scala l'oggetto dal mercato, i soldi dal pg e assegna al pg l'oggetto.
senza bisogno di tanti artifici strani.
08/02/2010 20:03:32
Sistemato, ero proprio fulminato oggi e cercavo soluzioni assurde -.-
Grazie a tutti
08/02/2010 23:51:10
verificherei anche che l'id dell'oggetto appartenga all'utente della sessione in corso.
altrimenti uno cambia l'id (pur sparando a caso) sperando di imbroccare qualcosa di figo.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Hogwarts Express - Harry Potter GDR Forum: 🦉 Gazzetta del Castello – Speciale nomine!
Nyx Insight - Project S.E.T.: Aggiornamenti Tryouts
Crossout → Tuffati nel mondo di Crossout, il gioco MMO d'azione post apocalittico! Costruisci le tue speciali macchine da combattimento!
Sea of Conquest: Vi presento Fung! 🐼
Hero Wars: Guadagnare Catalysts nella Totem Fusion
Star Trek Horizon: Questlog: Il mondo fantasma
enigmatrix ha recensito Cleveland City
RAID Shadow Legends → Plasma i tuoi eroi fino a farli diventare vere e proprie armi viventi e assembla i più epici gruppi d'assalto mai visti finora!
I dati del generatore di rank sono stati aggiornati!
Il gestore di Exclusive Villa GdR ha risposto alla recensione di hhhh
enor_staff ha risposto alla discussione: Eroi di Enor
onestamente ha recensito Cleveland City
Crash Bandicoot Zone → Caos, libertà e risate: nel GDR ambientato nell’universo di Crash Bandicoot, ogni storia è possibile… e nulla è troppo folle!
Sea of Conquest: Nuovo Eroe: Alonso, la Lama d'Ombra!
Hero Wars: Lara Croft è ora disponibile per il preordine!
La Tana del Ladro: Ser Gnic e Lady Gnac
Le Cronache di Raja Dunia: Fiera Maggiore - Domogt Aral
New World Order → Diventa un agente del Nuovo Ordine Mondiale e affronta le forze occulte che minacciano il pianeta Terra in questo GDR Urban Fantasy per Mobile!
Città Virtuale GPL - Scarica gratis Città Virtuale GPL open source per realizzare GdR PbC!
Allineamenti GoT - Tu di che allineamento sei? Special guest: A Game of Thrones!
Oscure Distese - Recensione del gdr fantasy epico noir: Oscure Distese...
Videogame - Tesi di laurea in scienze del web con un interessante analisi del settore dei videogiochi
Ricerca staff! - Alcuni utili consigli di Lith su come usare in modo efficace lo strumento di ricerca staff su gdr-online!
YouRole - Intervista a Leonardo Sampieri ideatore di YouRole... a cura dei nostri amici di Anonima Gidierre
The Chronicles of Avilion - I nostri amici di Fantagiochi hanno analizzato il gdr online fantasy Emprie of Darkness...
Statistiche Tecniche 2019 - Gdr-online.com pubblica i dati tecnici dei suoi visitatori per l'anno 2019. Spulcia i dati disponibili!