Bugs nel sistema di messaggistica del gdrcd 5.1 postato il 02/08/2012 11:13:52 nel forum programmazione, gdrcd, open source, hosting e modificato da clemence il 24/12/2012 23:45:08
Ciao a tutti!
Ho trovato alcuni bugs nel sistema di messaggistica del gdrcd 5.1. presenti nel file messages_center.inc.php (sia in quello della versione base che in quello della patch di sicurezza).
Visto che alcuni di questi problemi li ho risolti mentre altri no, e visto che non c'è una discussione dedicata esclusivamente ai problemi legati la messaggistica del gdrcd 5.1 advanced, ho pensato bene di aprire questa discussione, in modo da fornire e trovare soluzioni.
Per essere sintetici, sono questi i problemi che ho trovato:
1. Interruzione della segnalazione del nuovo messaggio appena si clicca sul link dei messaggi
(Risolto: basta inserire sostituire la riga 7 del file messaggi.inc.php con questa riga:
)
2. Rallentamento del sito alla prima ricezione di un messaggio
(Risolto: In effetti non è un vero problema... Penso che il rallentamento capita solo al primo messaggio perché si doveva caricare il file audio. Ho risolto inserendo un file .swf come suono per i messaggi.)
3. Messaggi inviati a tutta l'utenza segnalati perennemente come non letti anche se vengono letti
4. Possibilità da parte di tutti (anche dei personaggi semplici) di inviare messaggi a tutta l'utenza
L'ultimo problema, in particolare, lo vedo potenzialmente pericoloso. Non mi sento di andare nello specifico per non creare danni alle land che non si sono accorte di questo problema ed hanno gdrcd advanced come base, ma ho notato che qualsiasi personaggio ha la possibilità di inviare messaggi a tutta la land scrivendo una determinata cosa nel campo del mittente.
Infine, c'è una cosa su cui ho bisogno di un chiarimento da parte di qualcuno perché non l'ho capita bene: ma nel gdrcd 5.1 c'è la possibilità di inviare messaggi ai gildati? e se c'è, come funziona?
Ho provato a mettere "super" a capo di una gilda e "test" come suo subordinato, ma non appare niente di nuovo nel menu a tendina sotto il campo del destinatario.
Pagine → 1
02/08/2012 11:38:05 e modificato da clemence il 24/12/2012 23:45:27
02/08/2012 12:19:19
24/12/2012 02:24:18 e modificato da clemence il 24/12/2012 23:46:40
Salve!
A distanza di mesi riesumo questa discussione perché ho trovato altri due bugs che non sono riuscito a risolvere (anzi, non ho neanche compreso da cosa derivano).
I bungs in questioni sono i seguenti:
1. Comparsa di un messaggio di errore quando un personaggio dotato di carica (master, moderatore, admin...) invia un messaggio multiplo a personaggi inesistenti o che hanno un nome errato.
Il messaggio di errore che appare è questo:
24/12/2012 15:08:03
La cosa è semplicissima: riga 29-30 del file messages_center.inc.php
Il controllo di esistenza è già fatto, il problema si evidenzia quando TUTTI i destinatari del messaggio non esistono. Questo genera la query che hai riportato, cioè una query di inserimento senza i dati da inserire.
Come risolvere? All'interno del foreach, invece di concatenare direttamente nella variabile $query usare un'altra variabile nuova. Al di fuori del foreach, deve venire fatto un controllo che la nuova variabile non sia vuota. Se non lo è, allora si procede a concatenare la nuova variabile con la variabile $query e si chiama gdrcd_query, altrimenti non si fa niente.
Per il problema dei permessi: purtroppo GDRCD è progettato così da capo a piedi. Controlla i permessi solo il fase di visualizzazione del form e non dopo che il form è stato inviato, aprendo il software a tutti i tipi di attacchi access bypass. Per ogni funzionalità di invio messaggi dalla riga 12 alla 48, dentro a ogni if ed elseif, devi fare un controllo appropriato dei permessi.
26/12/2012 22:08:00
Grazie Leoblacksoul, proverò la soluzione che hai suggerito, anche perché davvero non vedo altre vie e la pagina non riesco a capirla nella sua completezza.
Ma se ho capito bene, un pg semplice non ha alcun controllo, può inviare ciò che vuole a chi vuole. Ho notato che è per un pg semplice è possibile inviare messaggi anche a personaggi inesistenti, volendo.
26/12/2012 23:17:12
si è esatto. L'autore originale di quella pagina è stato pigro e non ha fatto tutti i controlli dovuti.
Comunque la cosa più importante è inserire il controllo permessi dentro a ogni if
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
I dati del generatore di rank sono stati aggiornati!