Ciao a tutti ![]()
Mi scuso in anticipo per questo post lungo, ma forse qualcuno che conosce bene Discourse saprà rispondere subito.
Co-gestisco un forum di nicchia moderato. In due: l’altro ha scritto il software (anch’esso in Ruby). Il forum esistente è completamente personalizzato, noto per la sua semplicità rispetto, ad esempio, a PHP-BB e Vbulletin (che continuano a subire attacchi). Il database è di circa 40 GB e contiene 200.000 post. Per varie ragioni stiamo valutando la migrazione del database su un’altra piattaforma e Discourse sembra una soluzione valida.
I test preliminari suggeriscono che sia piuttosto valido nelle funzionalità generali, ad esempio il supporto per l’incorporamento di immagini e video. Funziona correttamente persino il caricamento di più immagini da un telefono Android!
Tuttavia, avremmo bisogno di alcune personalizzazioni, principalmente semplificazioni dell’interfaccia utente. Ecco alcuni esempi, senza un ordine particolare di importanza:
-
Non mostrare il totale dei post di un utente: questo serve a evitare che i nuovi membri si sentano intimiditi.
-
Bloccare la modifica dei post da parte dell’utente dopo un certo periodo (attualmente impostato a 2 ore): questo serve a prevenire un tipo di trolling non raro in questo ambito.
-
Una sezione per annunci classificati con possibilità di pagamento tramite PayPal. Mi rendo conto che non è banale a causa della configurazione della struttura dei prezzi, del link di pagamento, ecc.
-
Visualizzare in modo evidente l’anno nella data del post.
-
Possibilità per gli amministratori di accedere a un utente e vedere chi altro è attivo sulla stessa installazione del browser (basato essenzialmente sui cookie). So che Discourse ha già questa funzione, ma basata sull’indirizzo IP, che al giorno d’oggi non è efficace (molti utenti usano dati mobili, specialmente quelli che vogliono gestire più identità). Ho letto questo thread
Handling trolls with multiple accounts over VPNs - #18 by ljpp
e altri, quindi è chiaro che molti hanno già affrontato questo problema; non esistono soluzioni per chi è esperto di VPN, ecc. Questi utenti tendono a farsi scoprire col tempo dallo stile di scrittura o pubblicando qualcosa di davvero offensivo, venendo poi bannati. Suggerirei anche che rilevare lo stesso hash della password sarebbe utile, dato che molte persone usano la stessa password per tutti i loro account
-
Per gli amministratori, un elenco lineare semplice dei post, che permetta una revisione rapida degli ultimi x post da un telefono. Immagino che si possa realizzare con un po’ di codice che accede direttamente al database, su un sottodominio. All’interno di questo elenco, ci dovrebbero essere i pulsanti ELIMINA e BAN, in modo che chi pubblica qualcosa di offensivo (sfortunatamente non raro nei forum) possa essere rimosso rapidamente.
-
Forse è già presente, da quanto ho capito: la possibilità per gli amministratori di unire post selezionati (o tutti) da un thread a un altro, mantenendo i post nel thread di destinazione in ordine cronologico corretto. Mi rendo conto che questo potrebbe rompere i link ai post, a meno che il link non sia unico per il sito (ad esempio, se si riferisce al numero del post nel database, e non al numero del post all’interno del thread).
-
Generazione da parte degli amministratori di un elenco CSV di indirizzi email di tutti gli utenti che hanno effettuato l’accesso negli ultimi 12 o 24 mesi. Abbiamo notato che inviare email a utenti più vecchi (più inattivi) aumenta notevolmente il rischio di finire nelle liste nere (RBL, ecc.), nonostante l’invio (principalmente su incontri, qualche volta all’anno) venga effettuato lentamente, un’email al minuto, per minimizzare il rischio (nell’invio blacklistiamo anche tutti gli indirizzi noti temporanei, come sharklasers.com).
-
Un’impostazione nel profilo utente per scegliere se ricevere queste email, per conformità al GDPR.
Ho appena letto il thread qui sul GDPR. Per quanto ne so nel Regno Unito, un autore non ha il diritto di richiedere la cancellazione dei propri post. Può far rimuovere le sue credenziali di accesso. Mi chiedo se Discourse sia in qualche modo più vulnerabile in questo ambito. Nel nostro forum, quasi tutti usano già uno pseudonimo.
-
Possibilità per gli amministratori di leggere i messaggi privati (PM). È essenziale perché molti spammer si registrano e inviano solo PM senza pubblicare. Non lo sapremmo a meno che qualcuno non si lamenti, ma molte nuove registrazioni sono sospette (anche se non chiaramente tali), quindi le monitoriamo per un po’… Ad esempio, abbiamo un’impostazione “Paese” nel profilo utente che deve essere specificata durante la registrazione; qualcuno che imposta la Germania ma è con un IP tailandese è probabilmente sospetto, ma potrebbe anche essere un tedesco in Thailandia!
-
Un’impostazione “Paese” per la posizione dell’utente, obbligatoria durante la registrazione (mi rendo conto che possono inserire ciò che vogliono).
Mi rendo conto che se si apportano modifiche al codice, applicare gli aggiornamenti potrebbe essere difficile o impossibile…
Le registrazioni sospette sono un vero problema. Stimo che attualmente il 10-20% delle registrazioni sia sospetto; quindi, se non si fa nulla, si avranno molti problemi in futuro. Il comportamento abituale è registrarsi, aspettare una settimana, poi inondare il forum di spam.
Purtroppo non conosco Ruby. Ho fatto un po’ di PHP. La mia esperienza IT è più generale: server POP e SMTP, macchine virtuali, VPN, FTP, SPF, DKIM, configurazioni dei router. HTML semplice ma niente CSS… La mia vecchia esperienza IT riguarda hardware e software per sistemi embedded (assembler e C). Chi ha scritto il software originale si è offerto di aiutare con la migrazione del database. Ho alcuni contatti che possono occuparsi di altre parti, ma non ho attualmente competenze dirette in Ruby… Ho alcuni siti in esecuzione su un server Linode che ha funzionato in modo molto affidabile, quindi sarebbe la mia prima scelta per l’hosting.
Grazie in anticipo per aver letto fino a qui e per eventuali indicazioni su quanto di tutto questo sia già presente e quanto lavoro sarebbe necessario per completare il resto, o qualcosa di simile ![]()