Joomla!

Oggi Joomla! è un argomento di grande attualità e interesse per la società. Con l'avanzamento della tecnologia e della globalizzazione, Joomla! è diventato un punto di discussione in diversi ambiti, dalla politica alla cultura popolare. Questo fenomeno ha generato opinioni e dibattiti contrastanti sulle sue implicazioni e conseguenze. In questo articolo esploreremo le diverse prospettive e approcci relativi a Joomla!, nonché il suo impatto sulla vita quotidiana delle persone. Inoltre, analizzeremo il ruolo che Joomla! svolge attualmente e la sua possibile evoluzione in futuro.

Joomla!
software
Logo
Logo
Installazione di default di Joomla! 4
Installazione di default di Joomla! 4
Installazione di default di Joomla! 4
GenereContent management system
SviluppatoreOSM Development Team
Data prima versione15 settembre 2005
Ultima versione5.3.0 (15 aprile 2025)
Sistema operativoMultipiattaforma
LinguaggioPHP
JavaScript
LicenzaGPL v.2
(licenza libera)
Sito webwww.joomla.org

Joomla! (IPA: /ˈdʒuːm.lɑː/) è un content management system (CMS) per la realizzazione di siti web, scritta in linguaggio PHP e pubblicata con licenza libera GNU GPL v2. Nato nel settembre 2005 da una scissione (fork) dal codice del CMS Mambo, è attualmente in rapido sviluppo, sotto la guida di un gruppo di programmatori (per buona parte ex-sviluppatori di Mambo) riuniti nell'associazione no-profit Open Source Matters[1]. È uno dei CMS più conosciuti al mondo.

Storia

versioni di Joomla[2][3]
Versione Data di distribuzione Supportata fino a
Vecchia versione non più supportata: 1.0 15 settembre 2005 22 luglio 2009
Vecchia versione non più supportata: 1.5 22 gennaio 2008 30 settembre 2012, LTS (inglese)
Vecchia versione non più supportata: 1.6 10 gennaio 2011 19 agosto 2011
Vecchia versione non più supportata: 1.7 19 luglio 2011 24 febbraio 2012
Vecchia versione non più supportata: 2.5 24 gennaio 2012 31 dicembre 2014, LTS (inglese)
Vecchia versione non più supportata: 3.0 27 settembre 2012 24 aprile 2013
Vecchia versione non più supportata: 3.1 24 aprile 2013 6 novembre 2013
Vecchia versione non più supportata: 3.2 6 novembre 2013 20 ottobre 2014
Vecchia versione non più supportata: 3.3 20 aprile 2014 25 febbraio 2015
Vecchia versione non più supportata: 3.4 25 febbraio 2015 21 marzo 2016
Vecchia versione non più supportata: 3.5 21 marzo 2016 12 luglio 2016
Vecchia versione non più supportata: 3.6 12 luglio 2016 25 aprile 2017
Vecchia versione non più supportata: 3.7 25 aprile 2017 19 settembre 2017
Vecchia versione non più supportata: 3.8 19 settembre 2017 30 ottobre 2018
Vecchia versione non più supportata: 3.9 30 ottobre 2018 17 agosto 2021
Vecchia versione non più supportata: 3.10.12 11 luglio 2023 17 agosto 2023
Versione precedente ancora supportata: 3.10.19-elts 28 agosto 2024 17 febbraio 2025, LTS (inglese)
Vecchia versione non più supportata: 4.0 17 agosto 2021 15 febbraio 2022
Vecchia versione non più supportata: 4.1 15 febbraio 2022 16 agosto 2022
Vecchia versione non più supportata: 4.2 16 agosto 2022 18 aprile 2023
Vecchia versione non più supportata: 4.3 22 agosto 2023 22 agosto 2023
Versione precedente ancora supportata: 4.4 17 ottobre 2023 15 ottobre 2025
Vecchia versione non più supportata: 5.0.0 17 ottobre 2023 12 ottobre 2027
Vecchia versione non più supportata: 5.1.0 16 aprile 2024 14 ottobre 2024
Versione stabile corrente: 5.2.0 14 ottobre 2024 15 aprile 2025
Legenda:
Vecchia versione
Versione precedente ancora supportata
Versione corrente
Ultima versione di anteprima
Versione futura

Joomla! nasce come risultato di un fork di Mambo tra l'australiana Miro Corporation, la proprietaria del trademark Mambo, e un gruppo di programmatori volontari, inclusi tutti i componenti il team di sviluppo. I due gruppi si separarono il 17 agosto 2005. La Miro Corporation fondò una fondazione no-profit con lo scopo di finanziare il progetto e proteggersi da problemi legali. Il team di sviluppo affermò che molti fondi dati alla fondazione andavano contro gli accordi precedenti fatti dall'eletto Mambo Steering Committee, mancando la necessaria consultazione con i principali membri del progetto e includendo clausole che violavano i valori dell'Open Source.

Il team di sviluppo creò un sito web chiamato OpenSourceMatters per distribuire informazioni agli utenti, agli sviluppatori, ai web designers e alla comunità in generale. Il capo progetto, Andrew Eddie, "MasterChief", scrisse una Lettera aperta alla comunità che apparve nella sezione degli annunci nel forum pubblico di mamboserver.com.

Il giorno successivo 1000 persone sottoscrissero il forum opensourcematters.org, la maggior parte delle quali inviarono parole di incoraggiamento e supporto alle azioni del Team di sviluppo. Il nuovo sito web ricevette un certo riscontro e fu citato in numerosi articoli di news riguardanti gli eventi apparsi su newsforge.com, eweek.com e ZDnet.com.

Questo evento innescò profonde riflessioni nella Comunità Open Source riguardo a ciò che poteva costituire il concetto stesso di Open Source. Forum e numerosi altri progetti Open Source si attivarono inviando commenti pro e contro le azioni di entrambe le parti. Le accuse contro Miro e la Mambo Foundation furono accese.

Nelle due settimane successive all'annuncio di Eddie i team vennero riorganizzati e la comunità continuò a crescere. Il giorno 1º settembre 2005 il nuovo nome del progetto fu annunciato a più di 3000 seguaci del team di sviluppo.

Il nome del progetto è una interpretazione fonetica della parola swahili jumla che significa "tutti insieme" o "come un'unica entità". Questo termine fu scelto in quanto rifletteva i propositi del team di lavoro che presiede tuttora insieme alla comunità alla realizzazione del progetto.

La prima release di Joomla fu annunciata il 16 settembre 2005: si trattava di un clone della versione di Mambo 4.5.2.3 combinata con una certa quantità di patch di sicurezza di livello moderato. L'obiettivo primario era quello di riscrivere completamente il codice per renderlo completamente compatibile con la versione del DB MySQL 5.

Joomla è distribuito sotto licenza GNU General Public License versione 2.

Descrizione

Il Pannello di Controllo di Joomla! 1.6

Il CMS è distribuito sotto forma di pacchetto compresso. È sufficiente scompattare l'archivio in una cartella pubblica di un server Web dotato di supporto a PHP ed avere a disposizione un database MySQL per i dati del programma. Dopo un processo di installazione (più propriamente, di prima configurazione) di pochi minuti, il sito è operativo.

Tra le caratteristiche principali proposte ci sono:

  • Alto grado di personalizzazione grazie alle numerose estensioni moduli, componenti e plugin (vedi più sotto) disponibili sia come Software libero che con altre licenze;
  • Caching delle pagine per incrementare le prestazioni;
  • Funzioni di Search Engine Optimization, per facilitare l'indicizzazione dei contenuti da parte dei motori di ricerca;
  • Feeding RSS, che permette ai visitatori di essere avvisati degli aggiornamenti dei contenuti mediante l'utilizzo di un feed reader;
  • Versione stampabile delle pagine;
  • Esportazione delle pagine in formato PDF;
  • Pubblicazione tipo Blog;
  • Sondaggi;
  • Ricerca testuale su tutti i contenuti inseriti;
  • Localizzazione internazionale, che permette la traduzione di ogni funzionalità del software nella propria lingua;

Altri componenti open source disponibili separatamente, sponsorizzati dal team di sviluppo di Joomla! ma non sviluppati dallo stesso team consentono, fra le altre cose, di:

  • Creare e gestire forum di discussione (Kunena);
  • Tradurre l'intero contenuto del sito per renderlo fruibile in più lingue;
  • Migliorare la gestione degli utenti registrati e potenziare loro interazioni, creando un effetto community (Community Builder).

Estensioni

Uno dei punti di forza di Joomla! è la vivacità della comunità che lo supporta, sia in termini di discussione e capacità di aiuto (il forum ufficiale supera i 100.000 post mensili) che di ampia disponibilità di componenti aggiuntivi per personalizzare la funzionalità del motore.

Tutte le estensioni vengono distribuite sotto forma di pacchetti compressi, la cui installazione è gestita in maniera completamente automatica da uno script apposito, disponibile nella sezione di amministrazione del proprio sito Joomla!, che permette anche di disinstallare estensioni già installate.

Ne esistono di tre tipi: componenti, moduli e plugin (che in Joomla! 1.0 si chiamavano mambot). Molte estensioni (nell'ordine delle migliaia) sono scaricabili dall'archivio ufficiale http://extensions.joomla.org.

Componenti

I componenti di Joomla! sono estensioni specifiche che permettono di aggiungere funzionalità complesse a un sito realizzato usando il CMS Joomla!.

I componenti per Joomla! differiscono dai moduli essenzialmente per il livello di complessità supportato. Tradizionalmente, i moduli vengono utilizzati per implementare funzionalità elementari mentre i componenti possono aggregare più moduli per realizzare funzionalità più complesse e più complete. In generale, l'aggiunta di un componente corrisponde all'aggiunta di un'intera sezione al sito dove viene installato.

Per esempio, nel caso della gestione di una newsletter i moduli coprono funzioni tipo "iscrizione (aggiunta) di un nuovo utente", "cancellazione di un utente" eccetera mentre un componente potrebbe gestire la newsletter nel suo complesso.

A loro volta, secondo il medesimo schema modulare, i componenti possono essere usati da applicazioni che coprono livelli di funzionalità ancora più complessi.

I componenti possono essere realizzati da qualsiasi utente di Joomla!. In rete si possono inoltre trovare componenti già pronti, prodotti da sviluppatori indipendenti.

Compatibilità dei componenti

Per l'impiego di un componente riveste un ruolo fondamentale la versione di Joomla! per cui esso è stato sviluppato. Infatti, la versione Joomla! 1.0, per limitazioni intrinseche al framework, pone dei limiti anche alla complessità dei componenti, limiti che la versione 1.5 ha consentito di superare con l'adozione del modello MVC (model-view-controller). Un componente sviluppato espressamente per una specifica versione di Joomla! viene detto anche "componente nativo" per quella versione.

Fra la versione 1.0 e la versione 1.5 di Joomla! è supportata solo la compatibilità in avanti dei componenti, ossia è possibile usare su Joomla! 1.5 componenti originariamente sviluppati per Joomla! 1.0, grazie anche a un plugin chiamato Legacy Mode. L'uso di questo plugin può avere un impatto sul livello di sicurezza e sulle prestazioni dei componenti, tuttavia ha consentito di evitare la riscrittura di molti componenti nativi.

I componenti nativi per Joomla! 1.5 non supportano la compatibilità all'indietro, non sono cioè utilizzabili su Joomla! 1.0, per via dei notevoli cambiamenti al framework e per il cambio di modello. La versione Joomla! 1.6 non è retrocompatibile con le versioni precedenti.

Non esiste più supporto per le versioni precedenti alla 3.10, e per questa release è ancora attivo un supporto di sicurezza fino al 2025.[4]

La stessa cosa succede con i componenti per Joomla! 4.x, non retrocompatibili, mentre le versioni 5.x richiederebbero una compatibilità nativa, ma sono dotate di un plugin (disattivabile) che estende la possibilità di utilizzo anche alle estensioni per la versione 4.

Moduli

I moduli di Joomla! sono estensioni che permettono l'aggiunta di piccole porzioni di HTML a un sito realizzato usando Joomla!. Sono usati per mostrare elementi di informazione o funzionalità interattive all'interno di un sito Joomla!, in maniera collaterale al contenuto principale. Si possono considerare come finestre aggiuntive attraverso le quali dare informazioni non necessariamente correlate alla pagina visualizzata, magari per mostrare le altre funzionalità del sito.

I moduli recuperano le informazioni, o parti di informazioni definite attraverso parametri, e le visualizzano nella zona di loro competenza; ad esempio il modulo "ultime notizie" recupera di default i soli titoli degli articoli per visualizzarli nel sito come lista, dando la possibilità di anticipare al visitatore ciò che si trova all'interno del sito stesso e quali sono le notizie più recenti. All'utente viene data la possibilità di scegliere quali moduli visualizzare e dove collocarli all'interno del layout della pagina, in accordo con un template (vedi sotto). Moduli sono anche i menu di navigazione all'interno di un sito Joomla!.

Agendo direttamente nella sezione Gestione Moduli (Module Manager) dell'amministrazione, possono essere creati semplici moduli in HTML. Nel caso di script più complessi, essi sono in genere preparati per essere installati con le apposite procedure. Esistono moltissimi moduli di grande utilità già programmati e pronti all'uso, messi gratuitamente a disposizione nell'apposita sezione del sito ufficiale delle estensioni.

Fra i moduli standard si possono segnalare il modulo main menu (il menu principale), il modulo di login (per l'accesso riservato degli utenti), quello per i sondaggi (poll) e quello per la distribuzione dei feed RSS (syndicate).

Struttura moduli

Generalmente, un modulo è composto da un file XML che funge da installer e che contiene le informazioni sullo sviluppatore dell'estensione e sugli altri file che lo compongono.

È affiancato da uno o più file PHP che ne svolgono la funzione principale, ovvero quella di generare il codice html che verrà poi riproposto sul sito.

È possibile includere file .ini per consentire una più facile localizzazione del modulo.

Tutti i file sopra elencati vengono poi compattati in un archivio di tipo .tgz o .zip, poi installabile sul CMS.

Plugin

I mambot sono nella versione 1.0 l'equivalente dei plugin della versione 1.5x in poi, quando richiamati, attivano un programma, uno script o eseguono una specifica funzione. Spesso agiscono in background nell'intero sito. Possono essere semplicissimi come la funzione che sostituisce un certo testo digitato con una funzione codificata (ad esempio posizionare una immagine precaricata impaginandola in un testo o spezzare in due pagine il contenuto di un lungo articolo), ma possono anche avere effetti molto più evidenti, come richiamare, all'interno delle finestre dei form per l'inserimento dei contenuti, le funzionalità di sofisticati editor di testo in modalità WYSIWYG elaborati da terze parti. Possono inoltre permettere collegamenti tra diversi componenti; una galleria di immagini, ad esempio, può avere un mambot collegato che renda la descrizione delle immagini disponibile alle funzioni di ricerca sul sito.

Esistono mambot per inserire funzioni Flash, per collegare automaticamente un glossario alle parole contenute nei testi degli articoli, per generare miniature delle immagini inserite nei testi in modo che alla selezione appaia una finestra con l'immagine a maggiore risoluzione, e molti altri.

Template

Un template è un documento HTML/CSS che contiene il codice necessario a guidare Joomla! e ad impaginare i contenuti: ad esempio contiene il codice che permette il caricamento dei vari moduli in posizioni predefinite, codice per caricare il cosiddetto mainbody (la zona in cui vengono presentati i contenuti principali generati da Joomla! o dai componenti aggiuntivi) e così via. Per ottenere l'aspetto desiderato molti template contengono anche una serie di immagini (per gli sfondi, i bordi eccetera). Ogni template può essere scaricato da appositi siti gratuitamente o a pagamento ed installato attraverso l'apposita area admin.

SEO

Lo stesso argomento in dettaglio: Ottimizzazione per i motori di ricerca.

Per una buona SEO di Joomla! si dovrebbe[5][6]:

  • Attivare i moduli SEO per Joomla!
  • Scegliere il Protocollo HTTPS
  • Attivare la Sitemap XML e il file Robots.txt
  • Abilitare la creazione di reindirizzamenti quando gli URL vengono modificati
  • Assicurarsi di usare la versione più recente di Joomla!
  • Inserimento dei Rich Snippets
  • Parola chiave principale nel primo paragrafo
  • Content Pruning (rimozione dei contenuti obsoleti che non possono più essere utili agli utenti)
  • Parole chiave nei tag H1
  • Immagini nominate correttamente (non per esempio "tr_1009_nh.jpg") e utilizzo del tag ALT
  • Utilizzo del tag TITLE nei link
  • Applicare il Nofollow per i link non necessari
  • Applicare lo schema markup. Esempio:
    <div class=”product-view” itemscope itemtype=”http://sito.org/Product“>
    

Sicurezza

A causa della sua popolarità e dei noti problemi di sicurezza, le installazioni di Joomla! sono spesso bersaglio di attacchi, soprattutto sotto forma di cosiddetti defacement. Tuttavia il numero di vulnerabilità di sicurezza nelle applicazioni web è aumentato drasticamente in generale, tanto che in linea di principio tutti i sistemi sono interessati da questo problema.[7]

Il team di sviluppo di Joomla! ha un dipartimento speciale dedicato esclusivamente alla ricerca di bug, chiamato "Bug Squad". In particolare, i numerosi componenti di terze parti causano un aumento del rischio per la sicurezza, che viene sfruttato dagli hacker. Alcune di queste estensioni richiedono diritti molto ampi sul server, che solitamente non sono elencati in modo esplicito. D'altro canto, i difetti di sicurezza legati alla programmazione sono rari e solitamente vengono eliminati abbastanza rapidamente. Gli utenti possono trovare aiuto nella rispettiva comunità online per mantenere aggiornato il loro sistema. Molti utenti, soprattutto privati, però, trascurano la manutenzione del sito web e non si rendono conto dei problemi che ne derivano.

Negli ultimi anni Joomla! ha dato vita a una solida reputazione in fatto di sicurezza, con funzionalità come l'autenticazione a due fattori e il controllo dei privilegi di amministratore. Tuttavia, è importante rimanere vigili e seguire le best practice, inclusi aggiornamenti regolari e password complesse.

Per affrontare in maniera attiva qualsiasi minaccia, il Joomla! Security Strike Team (JSST), team dedicato e continuamente attivo da diversi anni, supervisiona le questioni di sicurezza del progetto e segue alcune procedure specifiche quando si tratta di questi problemi.[8]

La documentazione ufficiale fornisce suggerimenti di sicurezza di base per il funzionamento sicuro di Joomla.[9]

Attacchi hacker

Le versioni di Joomla! precedenti alla 4.x non aggiornate potevano essere vittima di vari attacchi hacker[10], ecco alcune tipologie:

  • Cross-site scripting (XSS): permette a un cracker di inserire o eseguire codice lato client al fine di attuare un insieme variegato di attacchi quali, ad esempio, raccolta, manipolazione e reindirizzamento di informazioni riservate, visualizzazione e modifica di dati presenti sui server, alterazione del comportamento dinamico delle pagine web, ecc.
  • SQL injection o SQLi: un hacker può inserire istruzioni SQL dannose nel sito ottenendo potenzialmente l’accesso a dati sensibili presenti nel database o distruggendo questi dati
  • Esecuzione di codice in modalità remota: ottenere l'accesso a un account con privilegi riservati almeno al livelloauthor su un sito di destinazione per eseguire codice PHP arbitrario sul server sottostante, portando a un'acquisizione remota completa.
  • Un bug CSRF di Joomla! consente a un utente malintenzionato di eseguire azioni indesiderate sul sito come l'eliminazione dei contenuti della pagina.
  • Privilege Escalation: l'escalation dei privilegi si verifica quando a un utente con privilegi amministrativi inferiori vengono concessi privilegi più elevati.
  • Gli attacchi Distributed Denial of Service tentano di sovraccaricare le risorse del server su cui il sito Joomla! è ospitato

Potenziali cause degli attacchi

Trascurare i seguenti aspetti può rendere Joomla! meno sicuro[11]:

  • Estensioni obsolete e non aggiornate
  • Componenti inutilizzati
  • Password deboli
  • Mancanza di Firewall come 2FA utilizzando Google Authenticator
  • Mancanza di CAPTCHA pre-accesso
  • Mancanza di Connessioni SFTP / SSH
  • Errate configurazioni del file .htaccess

Riconoscimenti

Joomla! dal 2005 è vincitore di numerosi premi internazionali[12]:

  • 2005: Best Linux / Open Source Project
  • 2006: Open Source Content Management System Award
  • 2006: Best Linux / Open Source Project
  • 2007: Best PHP Open Source Content Management System[13]
  • 2011: Best Source Content Management System Award[14]
  • 2014: Best Open Source PHP CMS - CMS Critic Awards
  • 2015: Best Free CMS - CMS Critic Awards
  • 2016: Best Free CMS - CMS Critic Awards
  • 2017: Best Free CMS - CMS Critic Awards
  • 2018: Best Free CMS - CMS Critic Awards
  • 2019: Best Free CMS - CMS Critic Awards
  • 2020: Best Free CMS - CMS Critic Awards
  • 2021: Best Free CMS - CMS Critic Awards
  • 2022: Best Free CMS - CMS Critic Awards
  • 2023: Best Free e Best Open Source CMS - CMS Critic Awards
  • 2024: Best Open Source CMS - CMS Critic Awards

Futuro

Il development team di Joomla! ha annunciato, ad inizio ottobre 2008, la fine del supporto per la versione 1.0 che è definitivamente stata sospesa dal 22 luglio 2009[15], mentre il supporto alla versione 1.5 è terminato ad aprile 2012. L'ultima versione LTS di Joomla! 3.x è la 3.10.19. Dal 2014 la strategia di sviluppo è improntata al versioning semantico, al momento vengono supportate la versione 4, di cui verranno esclusivamente corretti i bug fino al 17 ottobre 2025, e la versione 5, attualmente in sviluppo e supportata fino al 19 ottobre 2027.

Note

  1. ^ Open Source Matters
  2. ^ Joomla! CMS versions - Joomla! Documentation, su docs.joomla.org. URL consultato il 23 novembre 2022.
  3. ^ (EN) Michael Babker, Joomla! Project Roadmap, su Joomla! Developer Network™. URL consultato il 16 dicembre 2022.
  4. ^ (EN) Joomla Extended Long Term Support (eLTS), su elts.joomla.org. URL consultato il 16 ottobre 2024.
  5. ^ (EN) ste, Ottimizzazione per i motori di ricerca, su Joomla.it supporto Italiano. URL consultato il 28 gennaio 2021.
  6. ^ (EN) Naveen Kumar, Best Rich Snippets aka Schema Plugins for Joomla, su JoomlaBeginner.com. URL consultato il 28 gennaio 2021.
  7. ^ IBM Internet Security Systems X-Force ® 2008 Trend & Risk Report (PDF), su www-935.ibm.com. URL consultato il Archiviato dall'originale il 3 novembre 2011; Recuperato il 17 ottobre 2011 (inglese). IBM Global Technology Services, gennaio 2009. (archiviato dall'url originale il 3 novembre 2011).
  8. ^ Joomla! Security Strike Team, su developer.joomla.org.
  9. ^ Security Guides, su docs.joomla.org.
  10. ^ attacchi joomla, su getastra.com.
  11. ^ sucuri.net, https://sucuri.net/guides/joomla-security/. URL consultato il 28 gennaio 2021.
  12. ^ Joomla! Awards - Joomla! Documentation, su docs.joomla.org. URL consultato il 28 gennaio 2021.
  13. ^ Best PHP Open Source Content Management System Archiviato il 10 novembre 2007 in Internet Archive.
  14. ^ 2011 Open Source Awards Winner news: Open Source CMS | Packt Publishing Technical & IT Book and eBook Store Archiviato il 13 novembre 2011 in Internet Archive.
  15. ^ (EN) Annuncio ufficiale

Voci correlate

Altri progetti

Collegamenti esterni

Controllo di autoritàVIAF (EN178384514 · LCCN (ENn2007068826 · GND (DE4997372-1 · J9U (ENHE987007365080805171