• User Attivo

    flood controllo

    ciao ragazzi ho una chat in php,xhtml e mysql...nella stanza di chat si divertono a intasare...ripetendo lo stesso messaggio tante volte...mi sapete aiutare a mette un antiflood???

    grazie mille:ciauz:


  • Moderatore

    ti dico logicamente cosa farei....
    un controllo sull'utente che stà scrivendo:
    se l'utente ha inviato un mex meno di 5 secondi fà avvisalo e mettigli una chiave di sessione a 1 se ricapita la passi a 2 alla terza viene cacciato 😛

    diciamo che questo potrebbe essere un metodo... però ce ne potrebbero essere altri migliori...


  • User Attivo

    io avevo pensato a una condizione che se il messaggio è identico lo invia una sola volta.se l'utente riprova a inviare lo stesso messaggio magari facendo indietro non glielo duplica...io problema è che non ho idea di come inserirla sta funzione...


  • Bannato User Attivo

    dipende dall'architettura della tua chat, al di là delle informazioni indicate, bisognerebbe analizzare il flusso di un singolo messaggio in chat, vedere qual'è il giro e decidere a che livello mettere il controllo/blocco.
    Per farti un esempio, se la tua chat utilizza js per inserire un messaggio nella room un primo controllo puoi farlo a livello di js, banalmente tieni in un campo nascosto l'ultimo msg inviato e al successivo controlli se è uguale al campo nascosto. Considerata la debolezza di un linguaggio lato client metti anche un controllo lato php il problema è con cosa lo confronti il messaggio che arriva al php? allora o lo metti in sessione alla stregua del campo nascosto o se devi usare i dati salvati dul DB MySQL meglio spostare il controllo direttamente su MySQL, qui andrebbe bene un trigger se hai un MySQL >5, altrimenti una chiave univoca sul msg e un campo apposito che valorizzerai con la data, l'ora, il minuto di inserimento. così che nello stesso minuto i messaggi uguali sono scartati da MySQL e l'errore può essere trappato dal PHP e rimandato sul front end. Rimane valido il discorso di massimux di fare un controllo su più livelli di "gravità" in maniera tale da poter assegnare un'azione a seconda della gravità fino ad arrivare al BAN dell'utente o per assurdo al BAN dell'ip.


  • User Attivo

    sinceramente a me basta un semplice codice che se il messaggio risulta identico (stesse lettere) non lo duplica. se venisse aggiunta una virgola ad esempio prima dell'inizio possa rimandarlo...
    non posso usare js perchè è una chat per cellulari ....
    cmq mi basta che non duplichi i messaggi per il fatto dei ban penso sia esagerato anche perchè potrebbero essere problemi di connessione 😉


  • ModSenior

    Usa le sessioni e confronti l'invio con la sessione all'interno del quale metti l'ultimo msg....


  • User Attivo

    Si però così ci sarebbe un problemino,
    mettiamo il caso un utente è in chat e scrive: "NOME" <poi va a capo> "ciao".
    Se dopo pochi secondi scrive: "ciao" <poi va a capo> "NOME" dovrebbe già non inviare il messaggio così...Quindi sono d'accordo con quanto detto da massimux di inserire diversi gradi, giunti al limite si banna. Chiaramente(penso sia stato sottinteso da massimux) il messaggio entro un tot di secondi deve essere lo stesso, perchè logicamente se uno scrive e va a capo alla quarta volta che va a capo viene buttato fuori eheh 😄