L'Architettura Determina la Sicurezza
Quando la maggior parte delle persone pensa alla sicurezza dei siti web, pensa a firewall, crittografia e password. Questi sono importanti, ma sono difese superficiali. La decisione piu impattante per la sicurezza del vostro sito viene presa molto prima che qualcuno configuri un firewall: e la decisione architetturale.
Un sito dinamico (WordPress, Drupal, applicazioni PHP/Node.js personalizzate) esegue codice lato server a ogni richiesta. Si connette a un database. Ha un pannello admin. Elabora input dell'utente. Ognuna di queste capacita e anche un vettore d'attacco. Un sito statico non ha nessuno di questi componenti. E' una collezione di file HTML, CSS e JavaScript pre-costruiti serviti direttamente da un CDN.
Comprendere la Superficie d'Attacco
Superficie d'Attacco di un Sito Dinamico
| Componente | Vettori d'Attacco | Livello di Rischio |
|---|---|---|
| Runtime PHP | Esecuzione remota di codice, inclusione file, deserializzazione | Critico |
| Database MySQL | SQL injection, esfiltrazione dati, escalation privilegi | Critico |
| Pannello wp-admin | Brute force, credential stuffing, session hijacking | Alto |
| Codice plugin | Tutti i precedenti, piu compromissione supply chain | Critico |
| Codice tema | XSS, template injection, bypass upload file | Medio-Alto |
| Upload file | Upload shell, directory traversal | Alto |
Sono sei categorie di attacco distinte. Abbiamo trattato molte di queste nel nostro articolo sulle vulnerabilita di WordPress nel 2025.
Superficie d'Attacco di un Sito Statico
| Componente | Vettori d'Attacco | Livello di Rischio |
|---|---|---|
| File HTML/CSS/JS | XSS (se contenuto generato dall'utente e incluso al build) | Basso |
| Configurazione CDN | Cache poisoning, header mal configurati | Basso |
| Pipeline di build | Compromissione supply chain | Medio |
| DNS | DNS hijacking, subdomain takeover | Medio |
Quattro categorie, la maggior parte a basso rischio. La riduzione netta e enorme.
Classi di Vulnerabilita Eliminate dai Siti Statici
SQL Injection: Eliminata
La SQL injection e costantemente classificata nella OWASP Top 10. Con un sito statico, non c'e database in cui iniettare. La classe di vulnerabilita semplicemente non esiste. Nessun database significa nessun SELECT * FROM users WHERE id = ' OR 1=1 --.
Esecuzione Remota di Codice: Eliminata
Le vulnerabilita RCE permettono a un attaccante di eseguire codice arbitrario sul server. Con un sito statico, non c'e runtime lato server che elabora le richieste. Il CDN serve file, nient'altro.
SSRF (Server-Side Request Forgery): Eliminata
Gli attacchi SSRF ingannano un server per fare richieste a risorse interne. Senza codice lato server, non c'e nulla da ingannare.
Bypass dell'Autenticazione: Eliminato
Se il sito non ha un pannello admin, non c'e autenticazione da bypassare. Nessuna pagina di login significa nessun attacco brute force, nessun credential stuffing, nessun session hijacking. Discutiamo i rischi specifici nel nostro articolo sulle pagine admin esposte.
Vulnerabilita di Upload File: Eliminate
I siti statici non accettano upload di file a livello di server.
Cosa i Siti Statici Non Possono Fare (E le Soluzioni)
Autenticazione Utenti
- Servizi auth di terze parti: Auth0, Firebase Auth, Clerk gestiscono l'autenticazione in modo sicuro.
- Funzioni serverless: Cloudflare Workers, AWS Lambda o Netlify Functions aggiungono endpoint lato server mirati.
Contenuto Dinamico
- JavaScript lato client: Per dataset piccoli, carica i dati come JSON e filtra nel browser.
- API esterne: Chiama servizi API dedicati dal JavaScript lato client.
- Incremental Static Regeneration: Alcuni framework supportano la rigenerazione di pagine individuali a intervalli definiti.
Gestione Contenuti
- CMS basato su Git: Decap CMS, Tina CMS permettono modifiche tramite interfaccia web che effettua commit su Git.
- CMS basato su API: Contentful, Sanity, Strapi forniscono un'interfaccia di editing. Il contenuto viene consegnato via API.
L'intuizione chiave e che il CMS (l'interfaccia di editing) e separato dal sito web. Anche se il CMS ha una vulnerabilita, il sito pubblico rimane statico e sicuro.
L'Architettura Jamstack
Jamstack (JavaScript, API, Markup) e il pattern architetturale che formalizza l'approccio statico per lo sviluppo web moderno. I principi fondamentali sono:
- Pre-rendering: Le pagine sono generate al momento del build, non a ogni richiesta.
- Disaccoppiamento: Il frontend e separato dai servizi backend.
- CDN-first: Gli asset statici sono distribuiti globalmente tramite CDN.
Per un'esplorazione piu approfondita delle scelte architetturali web moderne, consultate il nostro articolo sull'architettura web moderna.
Distribuzione CDN: Sicurezza Attraverso l'Architettura
Resilienza DDoS
I siti dinamici sono vulnerabili agli attacchi DDoS perche ogni richiesta richiede elaborazione lato server. I siti statici serviti da un CDN distribuiscono il carico su centinaia di edge node nel mondo. I principali provider CDN hanno mitigazione DDoS integrata a livello di rete.
HTTPS per Default
Tutte le principali piattaforme CDN/hosting (Cloudflare Pages, Netlify, Vercel) forniscono certificati TLS gratuiti e rinnovati automaticamente. HTTPS non e un add-on; e il default.
Confronto Costi
| Fattore | Dinamico (WordPress) | Statico (Jamstack) |
|---|---|---|
| Hosting | 10-50 CHF/mese (condiviso) a 100+ CHF/mese | 0-20 CHF/mese (spesso gratuito) |
| Certificato SSL | 0-100 CHF/anno | 0 CHF (automatico, incluso) |
| CDN | 20-200 CHF/mese (servizio aggiuntivo) | 0 CHF (incluso per default) |
| Plugin sicurezza/WAF | 100-300 CHF/anno | Non necessario |
| Manutenzione aggiornamenti | 2-5 ore/mese | Quasi zero |
Quando Serve Ancora il Dinamico
L'architettura statica non e la scelta giusta per tutto. Servono capacita dinamiche per: applicazioni chat in tempo reale, flussi di checkout e-commerce complessi, piattaforme con contenuti generati dagli utenti su larga scala. Anche in questi casi, si puo spesso adottare un approccio ibrido. Per un confronto tra WordPress e Jamstack, consultate il nostro articolo su WordPress vs. Jamstack.
Conclusione
L'architettura del vostro sito e la sua decisione di sicurezza piu importante. Un sito statico elimina SQL injection, esecuzione remota di codice, bypass dell'autenticazione, attacchi upload file e difetti di gestione sessioni semplicemente non avendo i componenti che questi attacchi prendono di mira.
Se state valutando l'architettura del vostro sito e volete capire le implicazioni di sicurezza dei diversi approcci, contattate il nostro team. Aiutiamo le aziende a Lugano e in tutta la Svizzera a costruire presenze web sicure per design.
Vuoi sapere se il tuo sito è sicuro?
Richiedi un audit di sicurezza gratuito. In 48 ore ricevi un report completo.
Richiedi Audit Gratuito