Indice dei contenuti dell'articolo:
Uno dei temi più discussi e richiesti sia da appassionati che da sviluppatori nel mondo WordPress è senza dubbio quello relativo alla sicurezza delle installazioni. L’obiettivo è proteggere i propri siti web da intrusioni, attacchi e, in generale, da quelle entità insidiose e malevole comunemente note come hacker. In questo contesto, si cercano soluzioni efficaci per blindare il proprio ambiente digitale.
Se ci si addentra nei forum online, nei gruppi Facebook dedicati o nelle newsletter tematiche, la risposta più comune e quasi canonica riguarda l’adozione di plugin specifici per la sicurezza. Tra i più popolari in questo campo, troviamo WordFence, Sucuri e iThemes Security. Non è raro che venga suggerita l’installazione di più di uno di questi plugin, talvolta in combinazione, per ottenere una copertura di sicurezza considerata più completa.
WordFence
Descrizione:
WordFence è uno dei plugin di sicurezza più popolari per WordPress, offrendo una vasta gamma di funzionalità per proteggere il tuo sito web. Tra le sue caratteristiche principali, troviamo la scansione dei malware, il firewall, e la protezione da attacchi di forza bruta. Il plugin è noto per la sua interfaccia user-friendly e per la possibilità di monitorare il traffico in tempo reale, consentendo agli amministratori di sito di reagire prontamente a qualsiasi potenziale minaccia.
Sito Ufficiale:
WordFence Official Site
Sucuri
Descrizione:
Sucuri è un altro plugin di sicurezza altamente considerato nella comunità WordPress. Offre una suite completa di strumenti per la sicurezza, tra cui un firewall per applicazioni web (WAF), monitoraggio dei malware e protezione da DDoS. Sucuri è particolarmente apprezzato per il suo servizio di pulizia del sito, che aiuta a rimuovere i malware e a ripristinare siti web compromessi.
Sito Ufficiale:
Sucuri Official Site
iThemes Security
Descrizione:
iThemes Security è un plugin di sicurezza robusto e versatile per WordPress, con una serie di funzionalità progettate per proteggere il tuo sito web da vari tipi di vulnerabilità. Alcune delle sue funzioni includono la protezione da attacchi di forza bruta, la scansione dei malware e l’implementazione di misure di sicurezza come la modifica dei prefissi delle tabelle del database e la protezione del file .htaccess.
Sito Ufficiale:
iThemes Security Official Site
Tuttavia, quello che spesso rimane in ombra è l’effetto collaterale di tali soluzioni sulle performance del sito web. Questi plugin, scritti principalmente in PHP—a causa delle limitazioni intrinseche di questo linguaggio in termini di performance—hanno un costo computazionale non trascurabile. Per ogni visita sul sito e per una serie di azioni specifiche, come ad esempio il processo di login, questi script avviano una sequenza di operazioni volte a garantire la sicurezza. Queste operazioni, però, possono incidere negativamente sul tempo di risposta del sito (latenza) e sull’utilizzo delle risorse di sistema, in particolare la CPU.
In altre parole, c’è un trade-off tra sicurezza e performance: l’installazione di plugin di sicurezza potrebbe fornire un livello di protezione più elevato, ma al prezzo di un peggioramento delle prestazioni del sito. Questo è un aspetto cruciale da considerare, soprattutto per chi è focalizzato sulle Web Performance e desidera offrire un’esperienza utente ottimale senza compromessi.
Come funzionano questi plugin di sicurezza ? Vediamo WordFence ad esempio.
Direttamente la loro sito : https://www.wordfence.com/blog/2017/01/how-wordpress-firewall-works/ riportiamo la versione tradotta in italiano.
“Quando attivi il firewall di Wordfence, utilizziamo una tecnica che indica al tuo server web di eseguire il codice del firewall di Wordfence prima di qualsiasi altro codice PHP sul tuo sito web. Il modo in cui lo facciamo è includere una direttiva nel tuo file .htaccess chiamato ‘auto_prepend_file’. Questa direttiva punta al codice di Wordfence e garantisce che Wordfence venga eseguito prima di qualsiasi altra cosa.
Una volta configurato il tuo sito Web per l’avvio del firewall di Wordfence, qualsiasi richiesta arrivi, indipendentemente dal file PHP a cui tenta di accedere, verrà prima elaborata da Wordfence per verificare se è sicura o meno. Il nostro firewall WordPress eseguirà la richiesta attraverso il suo set di regole, eseguendo un’analisi dettagliata ad alte prestazioni e prenderà una decisione per bloccare la richiesta o consentirla.
Il codice del firewall che esegue questa decisione prima di qualsiasi altra cosa, incluso WordPress. Ciò significa che il codice WordPress non è stato caricato e il database non è ancora connesso. Questo rende il codice del firewall di Wordfence incredibilmente veloce . Possiamo bloccare una richiesta malevola prima ancora che si connetta al tuo database e prima che il voluminoso codice WordPress e l’ambiente API siano caricati.
Il codice firewall di Wordfence viene eseguito prima di qualsiasi altra cosa, incluso WordPress. Ma ha anche la possibilità di trasferire i dati a WordPress e ottenere dati dall’API di WordPress. Questo ci consente di incorporare l’identità dell’utente nel nostro set di regole in modo che possiamo decidere se autorizzare o meno l’accesso di un utente, basandosi non solo sul contenuto della richiesta, ma su chi sono e su quale livello di accesso hanno all’interno di WordPress.
L’utilizzo di questo modello di esecuzione ad alte prestazioni significa che gli hacker raggiungono solo il superfluo firewall di Wordfence e non riescono a ottenere oltre. Visitatori del sito amici, crawler e utenti possono accedere al tuo sito web completo. Ciò mantiene il tuo sito Web WordPress veloce e sicuro.”
Alte prestazioni ? Davvero ? In quale contesto ?
Il termine “alte prestazioni” è un concetto relativo che può variare notevolmente a seconda del contesto in cui viene utilizzato. Per fare un analogo automobilistico, una Ferrari è indiscutibilmente veloce se paragonata a una berlina di serie, ma potrebbe non essere la più veloce se messa a confronto con una vettura da Formula 1. Quindi, la velocità e le prestazioni sono sempre relative e dipendono dai criteri di paragone che si adottano.
Criteri di Valutazione per i Plugin WordPress
Nel contesto dei plugin di sicurezza per WordPress, “alte prestazioni” potrebbe riferirsi all’efficacia nel rilevare e prevenire minacce, alla facilità d’uso, o all’efficienza nell’utilizzo delle risorse di sistema. Tuttavia, l’uso del termine diventa ambiguo quando si considerano anche le implicazioni sulle performance del sito, soprattutto per siti web con elevati livelli di traffico.
PHP e i Limiti Inerenti
Consideriamo, ad esempio, un plugin WordPress che funge da WAF (Web Application Firewall). Anche se fosse progettato per operare nel modo più efficiente possibile, l’uso del linguaggio PHP presenta delle sfide intrinseche. PHP è notoriamente meno veloce di altri linguaggi di programmazione e può diventare un collo di bottiglia, soprattutto quando deve eseguire operazioni complesse o numerose durante ogni singola visita al sito. Il suo modello di esecuzione bloccante significa che ogni operazione deve completarsi prima che la successiva possa iniziare, il che può rallentare significativamente il sito.
Il Dilemma della Performance per Siti ad Alto Traffico
Pertanto, anche se un plugin di sicurezza basato su PHP potrebbe essere “ad alte prestazioni” in termini di capacità di rilevare e neutralizzare minacce, potrebbe non essere la soluzione ideale per un sito WordPress che deve gestire un elevato volume di traffico. In questi casi, la necessità di eseguire controlli di sicurezza “ad ogni visita” può diventare un fattore limitante significativo, impattando negativamente sia la latenza che l’utilizzo delle risorse di CPU.
Ricordiamoci sempre che PHP è un linguaggio lentissimo.
Come riportato da moltissimi Benchmark, PHP ha un consumo di CPU davvero elevato se paragonato ad altri linguaggi come node.js da cui abbiamo riportato il grafico qui sotto. Questo ha un forte impatto sulle performance.
Ve lo immaginate un sito che per ogni singola visita debba eseguire anche una sola banalissima operazione in PHP ? Ci si rende o conto o no che il linguaggio di programmazione PHP è quanto di più lento possa esistere ? Ci rendiamo conto che se abbiamo 1000 o più visitatori online è impensabile azionare PHP per ogni visitatore onde evitare un rallentamento importante delle prestazioni fino ad un crash del sistema ?
Prendiamo ad esempio questa schermata di 5 giorni fa. Un noto blog ad alto traffico con circa 15 mila utenti connessi al minuto, ovvero circa 250 utenti al secondo. Avrebbe davvero senso eseguire un processo PHP per ogni utente ? No. Ovviamente.
I nostri consigli
La sicurezza online è un tema che preoccupa ogni gestore di siti web, e nel vasto ecosistema di WordPress, le opzioni per proteggere il vostro sito possono sembrare infinite. Tuttavia, non tutte le soluzioni si adattano alle esigenze di ogni tipo di sito.
Valutazione Critica dei Plugin di Sicurezza
La nostra raccomandazione più sincera riguarda la cautela nella scelta di installare plugin di sicurezza per WordPress. Questi strumenti possono essere molto efficaci, ma è essenziale considerare l’ambiente in cui saranno utilizzati.
Per Siti Istituzionali a Basso Traffico
Se gestite un sito istituzionale con aggiornamenti sporadici e un volume di traffico relativamente basso, l’uso di questi plugin potrebbe essere una scelta accettabile. Tuttavia, è bene essere consapevoli che ciò comporterà un incremento nel carico di lavoro del server e un aumento della latenza. Il lato positivo è che otterrete un livello di sicurezza maggiore per il vostro sito web.
Per Siti WordPress ad Alto Traffico
Per i siti WordPress con un elevato volume di traffico, il consiglio più prezioso che possiamo offrire è di evitare l’installazione di questi plugin. L’impatto sulle performance potrebbe essere notevole e potenzialmente dannoso.
Soluzioni WAF Lato Sistemistico
Se avete un requisito imperativo per una soluzione di sicurezza che agisca come un WAF (Web Application Firewall), la nostra raccomandazione è di esplorare opzioni lato sistemistico piuttosto che affidarsi a plugin WordPress. Ad esempio, potete considerare NAXSI, un firewall di sicurezza open-source per server web NGINX, o il più tradizionale e collaudato mod_security per Apache.
Soluzioni di Sicurezza in Outsourcing
Se preferite optare per servizi di sicurezza gestiti, una soluzione come il piano commerciale di CloudFlare, che parte da circa 25€ al mese, può fornire un efficace servizio di Web Application Firewall senza appesantire il vostro sistema o causare crash.
In definitiva, la chiave è scegliere la soluzione di sicurezza più adatta al vostro ambiente specifico, tenendo sempre in considerazione sia le esigenze di sicurezza che le implicazioni sulle performance del sito.