Vecchio forum e Wiki ora online! 😀

Ciao a tutti!

Sono felice di annunciare che la wiki e il vecchio forum sono di nuovo online!

CPCWiki si è finalmente aggiornato con le ultime versioni di Mediawiki, un nuovo aspetto più elegante e funzionalità moderne.

Nel frattempo, il vecchio forum è tornato online, sebbene in modalità sola lettura. Noterete che tutti i permessi sono stati revocati per mantenerlo congelato nel tempo.

Credetemi, c’è stato un enorme lavoro dietro — da parte mia, ma soprattutto da parte di @Highlander, che ha fatto un lavoro fantastico nel configurare l’infrastruttura.

Detto questo, ci saranno sicuramente dei problemi. So, per esempio, che alcune estensioni della wiki (la maggior parte era comunque disattivata) non funzionano perfettamente.

Quindi, vi sarei grato se poteste fare qualche prova e segnalare qui qualsiasi cosa notiate.

Con questo, considero completata la prima e più grande fase della migrazione. Ora ci concentreremo sulla risoluzione dei problemi e sulla messa a punto.

Grazie per la vostra pazienza!

PS Vale la pena menzionare che, nel momento stesso in cui la wiki è tornata attiva, i soliti bot sono ripartiti all’assalto in massa. Sono riusciti a rendere il sito (o i siti) non raggiungibile, persino su questo nuovo server nettamente superiore. Abbiamo implementato una serie di misure (rate limiting, rilevamento e blocco dei bot sul sito, regole WAF che bloccano interi paesi, ecc.). Tuttavia, penso che i controlli di Cloudflare ora siano molto più efficienti e dovreste vederne uno solo se c’è qualcosa di sospetto nella vostra connessione.

Sembra fantastico! Ottimo lavoro!

Grandioso! Congratulazioni a tutti e due.

Grazie mille per l’ottimo lavoro.

Fantastico!!
Sono state recuperate informazioni utilissime. Gran bel lavoro!!

Ottimo lavoro, mi è mancato il CPC Wiki quest’estate. È fantastico vedere che non tutto è andato perduto.

Fantastico!!! Grazie @Gryzor e @Highlander per aver riportato le cose alla vita!

Bel materiale :slight_smile:

Un lavoro incredibile da parte di tutti i coinvolti. Sono davvero felice che il wiki sia tornato!

Bentornato amico!

Fantastico.

Grazie per il vostro ottimo lavoro! Il nuovo forum è davvero bello. Ero così abituato a quello precedente che ci vorrà un po’ per sentirmi a casa, ma ci arriverò :smile: .

Bentornato amico!

Eh sì, sembra un po’ diverso, ma una volta che inizi a smanettarci vedrai che non è poi così differente! :slight_smile:

«Congelato nel tempo», ci hai preso in pieno. L’idea è quella di preservare le conversazioni, il valore, la storia.

Avevi ragione al 100% a ricostruire un forum funzionante, se non altro per poter renderizzare le pagine a scopo di conservazione.

Ora, quelle pagine non dovrebbero cambiare, giusto? Beh, per definizione no.

Mantenere un intero software funzionante che renderizza dinamicamente pagine destinate a… non cambiare mai, sembra inutile.

E con lo stato attuale di Internet, sei quasi costretto a mantenerlo, aggiornarlo, ecc., per timore che venga hackerato.

Hai preso in considerazione l’idea di trasformarlo in un sito web statico? Potresti usare uno strumento di download per siti web (ad es. wget o simili) per scaricare uno snapshot HTML completo e autonomo dell’intero set di pagine del forum. Poi scollegare l’installazione di SMF e servire quel set di pagine agli stessi URL. In un attimo, servire le pagine consumerebbe molta meno CPU, la superficie di attacco si ridurrebbe e la manutenzione sarebbe semplificata, garantendo al contempo che l’HTML renderizzato, il CSS ecc. rimangano costanti nel tempo.

Unico inconveniente: qualsiasi aspetto non pubblico (messaggi privati ecc.) andrebbe perduto. Potresti annunciare il cambiamento più volte e farlo, ad esempio, dopo un preavviso di un anno per permettere alle persone di salvare ciò che desiderano.

Che ne pensi @Gryzor?

Questa è in realtà la mia preoccupazione principale: che a causa di entrambe queste considerazioni, il forum venga prima o poi abbandonato e che tutte le informazioni vadano perse.

Penso che dovremmo fare qualcosa al riguardo, proprio qui in questo forum (magari in una sezione archivio). Sono felice di dare una mano.

Ad essere onesti non è una preoccupazione campata in aria, ma all’atto pratico la soluzione fa un po’ acqua da tutte le parti. Ci sto pensando da ieri sera e ci sono diversi ostacoli che sono intrinsecamente impossibili (?) da superare:

1. Problemi con wget

SMF genera permutazioni dinamiche di URL per ogni singolo topic:

  • Filtri di ordinamento (?sort=subject;desc, ?sort=starter)

  • Paginazione e link di salto (?topic=123.prev_next=next, ?topic=123.prev_next=prev)

  • Viste di servizio (?action=printpage, ?action=profile, ?action=help)

  • Identificatori di sessione e variazioni dell’indice delle sezioni

Se punti wget -m su SMF senza aver impostato decine di regole regex, lo spider finirà INEVITABILMENTE in dei loop di scansione infiniti. Dato che il forum conta circa 250k post, può generare tranquillamente 15 MILIONI (da quello che vedo) di URL da scansionare — buona fortuna gestirli!.

2. Il problema degli URL e del Web Server

Ho fatto un paio di test; i web server standard non servono file statici da stringhe di query (query string) come fa SMF.

Per intenderci: quando un utente visita index.php?topic=1240.0, il web server vede index.php come il percorso del file e ?topic=1240.0 come parametri della query. Se rimuovi PHP, il server prova semplicemente a servire il file statico index.php all’infinito. Per mappare i file statici catturati sugli URL originali con la query-string di SMF, dovresti scrivere un groviglio di regole di riscrittura (rewrite rules) per Caddy per convertire i parametri della query in nomi di file flat sul disco. Se quella mappatura salta, spacchi tutti i link in entrata da Google e da CPCWiki stessa, ed è un incubo a livello SEO.

3. Allegati/Download

SMF serve gli allegati in modo dinamico tramite index.php?action=dlattach;topic=.... Questo probabilmente fallirà miseramente con un crawler.

4. Ricerca

Se lo manteniamo sotto forma di pagine statiche, il motore di ricerca interno va a farsi benedire (per quel poco che serve). Potremmo integrare un indice di ricerca lato client separato (come Pagefind) nei template HTML catturati, ma in parte vanifica lo scopo iniziale.

Soluzione?

La soluzione migliore che mi è venuta in mente è analizzare il database con uno script per generare un elenco di URL unici dei topic e poi usare wget per scaricare gli URL di quella lista — ma questo non risolve il resto dei problemi.

Blindatura (Hardening)

Se la preoccupazione è la sicurezza contro atti di vandalismo o simili, possiamo tranquillamente bloccare tutto semplicemente revocando i permessi di INSERT, UPDATE, DELETE, DROP, ALTER ON sul DB. Impostiamo la webroot in sola lettura (RO) e restituiamo un errore 503 per azioni specifiche come:

@blocked {
    query action=login*
    query action=register*
    query action=post*
    query action=pm*
}
respond @blocked "Forum is read-only" 403

…e il gioco è fatto.

Ma ehi, anche se un attaccante dovesse in qualche modo riuscire ad accedere e fare casino sul sistema così com’è ora, abbiamo comunque backup sparsi in una dozzina di posti :slight_smile:

Questo È un problema a lungo termine. Non ci ho pensato molto, ma arriverà il momento in cui il CPC smetterà naturalmente di esistere. Non ho idea di come procedere a quel punto.

È un ottimo inizio :grin:

Fantastico che il vecchio forum sia tornato.

Mi mancava e sono felice di essere di nuovo dei vostri.

Grazie mille per tutto il duro lavoro che ci avete messo per rendere possibile tutto questo. :grinning_face: :flexed_biceps:

Bentornato amico! :slight_smile: