Gdrcd 5.1 - Piccolo difetto di Chat e Mappe postato il 14/03/2013 18:02:51 nel forum programmazione, gdrcd e open source
Salve a tutti!
Smanettando un po' con le mappe e con le chat, ho notato un piccolo difetto.
Modificando l'url sulla barra degli indirizzi, è possibile fare in modo che, pur risultando presenti su una data mappa, si possa "spiare" una chat di un'altra mappa.
Faccio un esempio: mettiamo caso che voglia spiare la chat "Piazza" che si trova sulla mappa "Mappa principale" facendo in modo che io risulti su un'altra mappa chiamata "Mappa secondaria".
Per fare ciò, basta agire sull'id della mappa e della chat dell'url della chat "Piazza", che sarebbe più o meno così:
Pagine → 1
14/03/2013 19:36:53
eheh. GDRCD è strutturato ovunque per poter usare questi escamotage.
Il fatto è che non bisognerebbe mai passare due parametri collegati tra di loro. Se un parametro può essere ricavato conoscendo l'altro basta metterne uno solo e ricavare l'altro con una query. In questo modo ti risparmi il mal di testa di dover validare DUE input invece che uno, anzi a quanto pare gdrcd non ne valida nemmeno uno.
Leva il map_id, e usa dir per ricavare il map_id dal database. Oppure puoi tenerli entrambi, ma DEVI sempre controllare che il map_id fornito sia coerente con il dir fornito controllando nel database.
15/03/2013 00:34:43
Grazie leoblacksoul, ottimi suggerimenti. Proverò a risolvere questo problema togliendo il map_id.
Ma se oltre ad eliminare ogni riferimento a map_id, eliminassi dal database la tabella mappa_click e modificassi la pagina mappaclick.inc.php riducendola ad una lista di chat, farei una cavolata?
15/03/2013 14:03:18 e modificato da cicciokr il 15/03/2013 14:05:01
si ma grossa. non devi eliminare il map_id semplicemente modifica l'header.ini.php
c'è una sezione con degli if che fa l'update sulla tabella personaggio per dire in che luogo è o se è in una mappa...
poi il file presenti è sempre dalla tabella personaggio che si basa.
puoi mettere che se entrambi i parametri sono valorizzati gli compare un messaggio tipo "non fare il furbetto" e fai un redirect sulla mappa principale.
15/03/2013 19:51:55
16/03/2013 18:58:06
Se hai tempo di aspettare fino a lunedì/martedì riscrivo il file al fine di fixare il bug.
16/03/2013 19:14:30
devi guarda i vari update che ci sono sotto e poi dovresti creare una struttura
if(mappa e dir) { qua poi ci devi mettere header("Location: main.php");}
else if(mappa e dir(vuota)) {}
else if(mappa(vuota) e dir) {}
e fidati che non ci sono problemi.
se non gli fai fare il redirect all'utente vede lo stesso la chat e non viene segnato nei presenti xD
16/03/2013 19:34:49
Ancora grazie a tutti per gli aiuti e le dritte, ma ancora non ho capito bene come creare questo controllo.
Proprio poco fa sono riuscito a scrivere un controllo funzionante in header.inc.php, cioè questo:
18/03/2013 01:48:49
Il redirect! Ecco cosa mancava!
Aggiungendo il redirect al controllo che ho fatto prima, funziona: se un furbetto inserisce nella barra degli indirizzi contemporaneamente un id della chat ed un id della mappa, si viene dirottati all'id della mappa.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
I dati del generatore di rank sono stati aggiornati!