Personalizzazione CMS | ELbuild

CMS

I CMS sono uno strumento potente e possono essere utilizzati per realizzare velocemente siti web e ecommerce, tuttavia la nostra esperienza ci ha portato nel tempo ad allontanarci quasi totalmente da questo tipo di soluzioni.

Cos'è un CMS?

Strumenti open source per la creazione di siti web e la gestione del contenuto

Un CMS (Content Management System) è uno strumento software, già pronto, predisposto per facilitare la gestione dei contenuti di un sito web svincolando chi si occupa dei contenuti da conoscenze tecniche di sviluppo web. Dopo l'installazione e la configurazione iniziale, la maggior parte delle operazioni necessarie per creare e aggiornare i contenuti web si possono fare da un'apposita interfaccia utente senza dover toccare il codice del sistema. Inoltre esistono ad oggi numerosi temi, gratuiti o a pagamento, che consentono di impostare velocemente la grafica e la struttura di un nuovo sito web.

Wordpress e Magento sono ad oggi i due CMS più diffusi e sono utilizzati rispettivamente per la creazione di siti "vetrina" e ecommerce.

Quando si usa un CMS

Siti web vetrina o semplici ecommerce

Solitamente un CMS è la prima scelta nei casi in cui i requisiti funzionali sono molto comuni (sito vetrina o e-commerce B2C di prodotti retail) o in quei casi dove un privato o una piccola azienda vogliano procedere autonomamente, avendo al suo interno un minimo di conoscenze tecniche e non avendo il budget o il tempo necessario per affidarsi ad un'azienda specializzata. In questi casi una scelta comune e affidarsi a un CMS open source e configurarlo per adattarlo alle proprie necessità.

I vantaggi di un CMS

I CMS offrono il pregio della velocità e semplici strumenti per la creazione dei contenuti

Sicuramente un prodotto come Wordpress permette di arrivare velocemente alla messa online di un nuovo sito e, soprattutto con l'acquisizione di un tema già predisposto, non è complicato ottenere un aspetto piacevole e professionale. Esistono temi di diversi tipi, già specializzati per negozi, studi, attività, etc. Strumenti di questo tipo consentono la massima flessibilità per quanto riguarda la site map di un sito, permettendo facilmente di aggiungere nuove pagine, sezioni, menù. L'editor di Wordpress è ad oggi tra i più avanzati e consente la creazione di pagine articolate, con contenuti multimediali e un discreto controllo sugli aspetti legati alla grafica, anche senza avere approfondite conoscenze di html e css.

Gli svantaggi (ed i rischi) di un CMS

Una soluzione in apparenza facile che presenta insidie nascoste

I problemi più evidenti di questo tipo di soluzioni sono la difficoltà di espansione e la poca sicurezza.

Nel caso in cui vogliate mettere online un sito molto velocemente e permettere l'aggiornamento dei contenuti da parte di una figura non tecnica, probabilmente Wordpress fa al caso vostro. Non si pensi però che, subito o in un secondo momento, sia altrettato semplice inserire funzionalità aggiuntive. E' vero che ci sono tanti plugin messi a disposizione dalla comunità ed alcuni sono veramente ben fatti e facili da inserire e configurare, ma i plugin sono pensati e realizzati in una certa maniera e non è semplice farli funzionare in un modo diverso, seppur in apparenza "simile". Inoltre, se si usano pochi plugin mirati a realizzare funzionalità ben definite, questi funzionano egregiamente, ma se si va a mettere insieme numerosi plugin diversi questi possono creare conflitti e portare a situazioni complicate e difficilmente debuggabili.

La costruzione di plugin ad hoc è sempre possibile e non complicata, ma se si pensa di progettare plugin con una logica strutturata e complessa, forse la scelta del CMS non è quella più adatta ed è bene valutare la crezione di un sistema su misura.

Da non sottovalutare sono inoltre gli aspetti relativi alla sicurezza: un prodotto open source non è intrisecamente meno sicuro di un prodotto commerciale, anzi, l'esposizione alla comunità permette di trovare più velocemente eventuali falle e risolverle velocemente; risulta però fondamentale applicare repentinamente ogni aggiornamento o patch rilasciata, altrimenti si espongono falle largamente conosciute e facilmente sfuttabili. La presenza di eventuali plugin complica ancora di più la situazione perché questi potrebbero non essere aggiornati con la rapidità con cui viene manutenuto il core e pertanto costituire un facile punto di accesso per un malintenzionato. Inoltre la possibile presenza di plugin non aggiornati può causare problemi anche con gli aggiornamenti stessi del core, che potrebbero far sì che tali plugin smettano di funzionare

Le tecnologie dei CMS

Generazione server side delle pagine web

La maggior parte dei CMS largamente diffusi oggi (Wordpress, Magento, Drupal, Joomla, etc.) si basano su uno stack LAMP, ovvero formato da Linux, Apache, MySQL e PHP. Queste tecnologie si trovano facilmente negli hosting gratuiti o a basso prezzo e quindi risultano una scelta ottima nei casi in cui si voglia realizzare il proprio sito in autonomia. Tuttavia, se qualche anno fa questo stack poteva costituire una valida alterenativa agli stack enterprise (almeno in un certo numero di casi), ad oggi la tecnologia di generazione della pagina lato server risulta ampiamente superata e ne emergono tutte le limitazioni intrinseche. Anche l'aspetto tecnologico è quindi un punto da non sottovalutare quando si va a scegliere uno strumento di questo tipo.

Il nostro approccio ai CMS

Una storia che si evolve nel tempo

Dobbiamo tanto a questo tipo di strumenti, che ci hanno permesso in passato di soddisfare le richieste dei nostri clienti, quando il nostro team era più piccolo e con meno esperienza. Negli anni ci siamo fatti una discreta esperienza nella configurazione e personalizzazione di questi prodotti, e anche nella creazione di plugin ad hoc per implementare nuove funzionalità e integrare questi sistemi con servizi terzi o sistemi da noi progettati.

Tuttavia, è stata proprio la conoscenza approfondita di queste tecnologie che ci ha portato a capire che non sono, ad oggi, lo strumento più adatto per l'implementazione dei progetti che portiamo avanti: la nascita di nuove tecnologie, i limiti dei CMS e i problemi di sicurezza, ci hanno spinto nel tempo ad optare quasi sempre per sistemi di tipo diverso.

Specialmente per quanto riguarda il CMS Magento si è creata una situazione di passaggio di versione in cui ci sono molti plugin disponibili per la versione vecchia che però è diventata obsoleta e poco sicura, mentre la versione nuova è più carente di funzionalità (vedi qui le nostre soluzioni ecommerce).

C'è da dire che non vogliamo per forza reinventare sempre la ruota: qualche volta l'utilizzo di un CMS è in effetti la soluzione migliore, ma il nostro cliente tipo ci presenta solitamente dei requisiti che, per essere soddisfatti con questo tipo di strumenti, porterebbero a una forzatura eccessiva e a un lavoro non ottimale.

Quando usiamo i CMS

A volte non serve reinventare la ruota

Ci sono alcuni casi specifici in cui ancora utilizziamo soluzioni di tipo CMS, andando a sfruttare le potenzialità di editing e di content management di questi prodotti e integrandoli con plugin ad hoc realizzati con tecnologie più moderne.

Un caso è quello in cui si debbano integrare delle funzionalità avanzate in siti già esistenti, con una struttura e processi di editing tali per cui diventa svantaggioso reimplementarli con tecnologie diverse.

In generale si fa una scelta di questo tipo laddove la parte di content management è strettamente necessaria e non divisible dal resto delle funzionalità.

In particolare abbiamo studiato una soluzione basata su Wordpress in sinergia con vue: questa coppia di strumenti ci permette di creare dei plug in che sfruttano le tecnologie client side e ci permettono di collegarsi alla logica fornita da una API, ma risiedono nelle pagine del CMS, sfruttando a pieno le potenzialità dei due mondi.

Rimozione malware e bonifica CMS

Servizi per chi ha subito un attacco su un CMS

A volte, soprattutto in caso di sistemi non aggiornati, la presenza di vulnerabilità non risolte si traduce nella possibilità per utenti malevoli di compiere attacchi volti a sottrarre dati (email, ordini, anagrafiche), compromettere la sicurezza del tuo sito per inserirlo in botnet o altri network o semplicemente rovinarne l'interfaccia utente. In questi casi l'unica soluzione è affidarsi ad uno sviluppatore con competenze di sicurezza informatica in grado di ripulire il codice e rimuovere le vulnerabilità.

Il processo con cui operiamo varia da caso a caso e non c'è una soluzione che si adatta a tutti i casi. Abbiamo con successo recuperato istanze di Drupal affette dalla vulnerabilità Drupageddon, Magento compromessi a livello di amministrazione o Wordpress oggetto di defacement a causa di uno o più plugin vulnerabili.

Migrazione da una soluzione CMS

Passare ad una soluzione più moderna senza perdere i dati

Data la larga diffusione che i CMS hanno avuto in passato non è infrequente trovare situazioni in cui aziende che hanno implementato servizi web con questo tipo di soluzioni vogliano passare a una tecnologia diversa. In questi casi una delle preoccupazioni dell'azienda è quella di preservare i dati attuali e possibilmente di riportarli sul nuovo sistema. Pensiamo ad esempio al caso degli ecommerce, dove a volte c'è un enorme lavoro di creazione del catalogo prodotti che non vogliamo vada sprecato.

In questi casi possiamo non solo andare a progettare un nuovo sistema con tutte le funzionalità presenti sul vecchio e le nuove richieste, ma anche studiare un approccio alla migrazione dei dati in modo da non perdere nulla del lavoro fatto.