Registro delle modifiche

NeoFrag Reborn 1.2.48

Luandre 9 ott 2026 9 min di lettura 24
Sommario
Sommario

Un pacchetto corposo: un audit di sicurezza (accessi, iniezioni, account, file), una moderazione che finalmente funziona — le sue sanzioni si applicano ora a tutto ciò che scrivono i membri —, un nuovo indirizzo email confermato prima di contare, l'eliminazione degli account inattivi, e l'accesso con Discord, GitHub o Google riparato. Il bot Discord passa alla versione 0.2.5 (vedi il suo registro delle modifiche). Su un sito in HTTPS, tutti accedono di nuovo una volta dopo l'aggiornamento: il cookie di sessione cambia nome.

Sicurezza

  • La ricerca del forum, aperta ai visitatori, permetteva un'iniezione SQL tramite una parola scritta tra virgolette; la ricerca della messaggistica privata aveva la stessa falla. Quella parola viene ora ripulita come le altre, e protetta dal database stesso.
  • Un invio che arriva da un altro sito viene rifiutato (POST, PUT, DELETE…), in base a ciò che dice il browser (Sec-Fetch-Site, altrimenti Origin): una pagina trappola non può più far agire un membro connesso a sua insaputa. Un client senza browser — il bot, un servizio di pagamento — non è toccato.
  • Venti azioni che cambiavano qualcosa con un semplice link richiedono ora il token di sessione, o accettano solo POST: seguire una discussione, farne un annuncio, segnare tutto come letto, lasciare una conversazione, archiviarla, eliminarla o ripristinarla, reagire, segnare le notifiche come lette, dare la propria disponibilità per un evento, aprire o chiudere il sito e le iscrizioni, avviare un backup o un aggiornamento, eliminare un campo di reclutamento… La disconnessione con un link senza token chiede una conferma con un pulsante.
  • In HTTPS, per un sito installato nella radice del suo dominio, il cookie di sessione ha il prefisso __Host-: un sottodominio (una demo, una webmail) non lo riceve più e non può più imporne uno. Un sito installato in una sottocartella conserva un cookie senza questo prefisso, che cambia solo nome.
  • Account:
    • il link «password dimenticata» funzionava anche come link di conferma dell'iscrizione, che fa accedere senza chiedere nulla per due giorni: ogni link funziona ora solo per il suo scopo;
    • cambiare la password annulla un nuovo indirizzo in sospeso e i link «password dimenticata»;
    • gli accessi falliti si contano per account — comunque sia scritto — e per rete: un indirizzo IPv6 conta per la sua rete /64, in tutti i limiti di tentativi del sito;
    • attivare l'autenticazione a due fattori o collegare un account Discord, GitHub o Google richiede di nuovo la password; cinque errori bloccano questa conferma per un quarto d'ora;
    • «password dimenticata» risponde allo stesso modo che un indirizzo sia registrato o no, e l'iscrizione dice che un indirizzo è già usato solo cinque volte all'ora e per rete;
    • lo storico degli accessi registra l'indirizzo della connessione, non più un'intestazione che sceglie il browser.
  • Dodici fughe di accesso chiuse: lo storico e le revisioni di una pagina del wiki in bozza; le categorie VIP del forum, tramite la ricerca e i profili; i gruppi nascosti; l'immagine di un album chiuso; le partite di un tipo riservato; la presenza che i partecipanti avevano nascosto; i commenti e le reazioni su contenuti nascosti; segnalare una conversazione di cui non si fa parte.
  • Due vecchi indirizzi della messaggistica privata restituivano i messaggi di qualsiasi conversazione, anche privata, a chiunque avesse il diritto di lettura — visitatori compresi: rimossi. Pubblicare un'immagine nella galleria richiedeva solo il diritto di vedere l'album.
  • Gli allegati del forum e delle conversazioni sono serviti dal sito, a chi può leggere la discussione o la conversazione, non più dal server web a chiunque ne avesse l'indirizzo. Un'immagine o un PDF si mostra, tutto il resto si scarica; un allegato che un browser eseguirebbe viene rifiutato al caricamento. Su Apache se ne occupa l'upload/.htaccess incluso; su nginx o Caddy, copia nella configurazione del tuo server la regola che blocca upload/forum/ e upload/talks/ (vedi i nginx.conf e Caddyfile inclusi).
  • Ciò che il server va a prendere da sé (relay di immagini, feed RSS, webhook) è limitato a indirizzi strettamente pubblici, sulle porte 80 e 443.
  • Le chiavi Stripe non si rileggono più in chiaro nell'amministrazione: conservate cifrate, mai più mostrate.
  • Demo: gli indirizzi IP dei visitatori, i nomi di host e i siti di provenienza non vi sono più mostrati; una pubblicità, un link, un partner che porta fuori dal sito si mostra su una pagina che dice dove porta, invece di reindirizzarvi.
  • Un link javascript: non può più mostrarsi al posto di un indirizzo: la pagina da cui veniva una sessione (amministrazione), i link di una partita (sito dell'avversario, stream, articolo). Il link che una segnalazione dà verso il contenuto segnalato può portare solo a una pagina del sito.

Aggiunto

  • Un nuovo indirizzo email attende la sua conferma: il link va al nuovo indirizzo (valido due giorni), quello vecchio viene avvisato, e «Il mio account» propone di inviare di nuovo il link o di annullare. Finora un errore di battitura tagliava fuori il membro da tutto ciò che il sito invia.
  • Gli account inattivi si eliminano: senza visite da tre anni — regolabile in Impostazioni, 0 per mai —, un'email avvisa il membro un mese prima, una visita annulla tutto. Mai un amministratore.
  • Sanzionare un membro senza aspettare una segnalazione, dal suo storico di moderazione, a cui rimanda la sua pagina di amministrazione.
  • Il pulsante di segnalazione (la bandierina «Segnala questo contenuto») nel libro degli ospiti, sulle immagini della galleria, gli annunci, i ticket e i loro commenti.
  • «Le mie sanzioni» nell'area membri, per chi ne ha avuta una nell'anno: il suo tipo, il suo motivo, il suo periodo.
  • La mediazione: a partire da una segnalazione, il moderatore propone una conversazione privata tra lui, il membro segnalato e chi ha segnalato. Il membro segnalato vi vedrà chi l'ha segnalato, quindi si apre solo con il consenso di chi ha segnalato, dato su una pagina che spiega ciò che accetta; se rifiuta, la sua segnalazione resta anonima e prosegue come al solito.

Corretto

  • Le sanzioni di moderazione si applicano a tutto ciò che scrivono i membri: forum, messaggistica privata, commenti, libro degli ospiti, Bug tracker, reclutamento, annunci, galleria, profilo, immagini caricate nell'editor di testo. Si controllava solo il silenziamento del forum e della messaggistica, e dopo l'invio. Il modulo lascia il posto a un avviso che dice cosa vieta la sanzione, fino a quando e perché; la sanzione «Restrizione: link» rifiuta un testo che contiene un link, senza perderlo.
  • Nessuna sanzione poteva essere emessa dalla schermata di moderazione: un errore interno lo impediva, quindi l'escalation automatica non scattava mai. Rivisti allo stesso tempo: le impostazioni (caselle che non si potevano togliere, soglia del segnalatore sospetto), gli ambiti, le durate (un ban temporaneo senza durata diventava definitivo), la convalida da parte di un moderatore di grado superiore, il pannello dei moderatori, le segnalazioni doppie, le pagine dalla 2 in poi, l'elenco degli IP. Un moderatore non può più revocare una sanzione che lo riguarda, né quella di un membro di grado pari o superiore, né una emessa da un moderatore di grado superiore.
  • Lo shadow ban funziona: ciò che scrive un membro con shadow ban si mostra solo a lui e ai moderatori, e nulla viene diffuso — nessuna notifica, niente Discord, nessun iscritto.
  • Un ruolo in più — Moderatore — toglieva diritti a un membro: un moderatore perdeva il forum e la messaggistica privata. Un ruolo aggiunge diritti, non ne toglie più.
  • Le email si inviano nella lingua di chi le riceve — sanzioni, risposte nel forum, messaggistica privata —, non più in quella del membro che le ha provocate.
  • L'accesso con Discord, GitHub o Google falliva appena un servizio era configurato (la libreria OAuth era cambiata), e mandava al servizio un indirizzo di ritorno che rifiutava. Un ritorno rifiutato dice ora perché invece di una pagina di errore, e l'avatar di Discord viene di nuovo importato.
  • Libro degli ospiti, amministrazione: approvare, rifiutare o eliminare un messaggio portava a un errore «pagina non trovata».
  • L'errore di un campo di un modulo è scritto sotto il campo, su un telefono come su un computer: si poteva leggere solo in un fumetto al passaggio del mouse.
  • La barra in alto dell'amministrazione resta in alto durante lo scorrimento; su un telefono, restano fissi solo il menu e le briciole di pane.
  • Trentaquattro errori di traduzione in dodici file di lingua («There are 1 user», conferme di eliminazione che mostravano < br / >, plurali inglesi…).
  • L'indirizzo del sito dichiarato da 48 addon del nucleo è quello del progetto, non più quello del NeoFrag originale. La pagina Modelli email dell'amministrazione non elenca più i modelli di un modulo non installato. Un errore in alcuni moduli (limite del libro degli ospiti raggiunto, eliminazione dell'account, autenticazione a due fattori, password, creazione di un membro nell'amministrazione) non porta più a un errore «pagina non trovata».
  • Demo: un membro comune non poteva aprire una discussione, rispondere da nessuna parte né candidarsi a nulla.
  • L'esportazione «I miei dati» comprende le segnalazioni fatte dal membro: mancavano dall'archivio.

Modificato

  • Un widget legato a un modulo ora dipende da esso (21 widget): senza quel modulo, o se è disattivato, il widget non si mostra più e l'Editor live non lo propone più; «Aggiungi» rifiuta un archivio di widget senza il suo modulo.
  • La documentazione del prodotto non viene più fornita nel wiki di un sito nuovo, che arriva vuoto; vive sul sito del progetto. Una nuova installazione non riceve più le impostazioni di temi che non ha.

Rimosso

  • I vecchi indirizzi ajax/talks della messaggistica privata, e la sua vecchia segnalazione dei messaggi, che scriveva solo nel log di audit, con la sua pagina di amministrazione «Segnalazioni di messaggi»: un messaggio si segnala ora tramite la moderazione.

Da leggere anche

0
Commenti

Gestisci i miei cookie

Il sito installa solo i cookie necessari al suo funzionamento: non richiedono il suo consenso. Gli altri servizi appartengono ad altre società; si caricano solo se li accetta. La sua scelta è conservata per sei mesi, e può cambiarla in qualsiasi momento.

Necessari al sito Sempre attivi

  • __Host-session Mantiene il suo accesso e protegge i moduli dagli invii fraudolenti. Fino alla chiusura del browser; un anno con «Ricordami»
  • nf_consent Conserva le scelte che fa in questa finestra. 6 mesi
  • nf_fuseau Mostra le date e gli orari nel suo fuso orario. 1 anno
  • Memoria del browser Conserva la sua scelta tra modalità giorno e notte, e la presentazione scelta per l’elenco degli articoli. Finché non lo svuota

Video

I video integrati nelle pagine: il lettore proviene dalla piattaforma, che riceve il suo indirizzo IP e può installare i propri cookie.

Musica

I brani e le playlist integrati nelle pagine: il lettore proviene dalla piattaforma, che riceve il suo indirizzo IP e può installare i propri cookie.