---
title: "Sicurezza"
description: "Perché Éclair è un CMS sicuro di default: senza database, Argon2id, autenticazione a due fattori, CSP rigorosa, controllo di integrità e audit offensivo."
url: "https://eclaircms.org/it/documentazione/sicurezza"
lang: "it"
author: "Thierry Gustin"
published: "2026-10-30"
updated: "2026-11-01"
---

# Sicurezza

> **In breve** — Éclair è un CMS sicuro di default: senza database, non offre alcun appiglio alla SQL injection; i suoi dati sono doppiamente protetti; l’accesso combina Argon2id, protezione anti brute force e autenticazione a due fattori; il sito pubblico applica una Content-Security-Policy rigorosa. Un audit di sicurezza offensivo ha trovato 17 vulnerabilità, tutte corrette.

Éclair è un CMS sicuro di default, pensato per un ambiente ostile: un hosting condiviso e bot che provano password giorno e notte. Non hai nulla da installare né da configurare per essere protetto. Questa guida spiega cosa è bloccato di default, cosa controlla l’amministrazione e i quattro accorgimenti che rafforzano ancora il tuo sito.

## Perché un sito senza database è più sicuro?

Senza database, la SQL injection, uno degli attacchi più diffusi contro i siti web, semplicemente non ha nulla da colpire. I tuoi contenuti sono file, e questi file sono protetti due volte:

- le cartelle `data/`, `app/` e `cache/` sono vietate dal web grazie al file `.htaccess`;
- ogni file di dati inizia con la riga `<?php exit; ?>`: anche se un server ignorasse i `.htaccess`, non verrebbe mostrato nulla, e nessuna sequenza `<?php` può esservi scritta;
- i file sono privati (permessi 0600) e scritti in modo atomico: un’interruzione non lascia mai un file scritto a metà.

L’installazione stessa è protetta: è possibile solo entro 2 ore dalla prima visita, e l’indirizzo del sito viene usato per reindirizzare i visitatori solo dopo essere stato verificato dal server stesso.

## Come è protetto l’accesso?

- **Password** cifrate con Argon2id (19 MiB di memoria, 2 passaggi), i parametri raccomandati da [OWASP](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html); bcrypt come ripiego. Minimo 10 caratteri, password comuni rifiutate.
- **Protezione anti brute force**: ogni tentativo viene prenotato prima di essere verificato, il che rende impossibile superare il limite con richieste in parallelo. I limiti riguardano la rete (indirizzo IPv4 o blocco /64 in IPv6) e l’account preso di mira. Il tuo dispositivo abituale non viene mai bloccato da un attaccante che sbaglia apposta.
- **Autenticazione a due fattori** (2FA) compatibile con Google Authenticator, Microsoft Authenticator, 1Password o Bitwarden, con codice QR e 8 codici di recupero mostrati una sola volta. Dopo 10 codici errati, la 2FA dell’account viene bloccata per 15 minuti e il titolare viene avvisato via email.
- **Password richiesta di nuovo** per le azioni sensibili (backup, account, impostazioni avanzate, cambio di email) oltre 15 minuti dopo l’accesso.
- **Sessioni rafforzate**: nessuna sessione prima dell’accesso, cookie `HttpOnly`, `Secure` e `SameSite=Strict`, disconnessione dopo inattività, pulsante «Disconnetti tutti». L’amministrazione viene forzata su HTTPS non appena lo è il sito.
- **Token CSRF** su tutte le azioni e verifica dell’origine delle richieste.

## Come è messo in sicurezza il sito pubblico?

| Protezione | Cosa impedisce |
| --- | --- |
| Content-Security-Policy rigorosa (nessuno script in linea, impronta SHA-256 per lo stile) | L’esecuzione di script iniettati |
| Anti-clickjacking, `nosniff`, `Referrer-Policy`, `Permissions-Policy`, HSTS facoltativo | L’incorporamento ingannevole della pagina, le fughe di informazioni |
| Nessun reindirizzamento aperto | L’uso del tuo dominio per reindirizzare verso un sito malevolo |
| Contenuti sanificati tramite lista bianca | I link `javascript:` o `data:`, anche camuffati |
| Modulo di contatto con campo trappola, token e limiti | Lo spam, senza captcha: 5 messaggi per rete ogni 10 minuti, 100 al giorno per tutto il sito |
| Immagini ricodificate al caricamento | I contenuti nascosti e i dati EXIF o GPS; gli SVG e le immagini che contengono codice vengono rifiutati |

Gli header di sicurezza dipendono dalle impostazioni, mai dalla richiesta: una pagina servita dalla cache invia gli stessi header a tutti, e questo rende impossibile l’avvelenamento della cache.

## Cosa controlla la pagina Sicurezza?

Riservata agli amministratori, la pagina **Sicurezza** raccoglie i tuoi strumenti di controllo:

![Pagina Sicurezza dell’amministrazione di Éclair: livello di protezione in percentuale, test di protezione delle cartelle e controllo di integrità](https://eclaircms.org/media/2026/11/it-security-page.webp)
*La pagina Sicurezza: ogni punto arancione indica una protezione che puoi ancora attivare.*

1. **Livello di protezione**: una percentuale e lo stato di ogni protezione (HTTPS, indirizzo verificato, autenticazione a due fattori, indirizzo di amministrazione, versione di PHP, HSTS…), con il pulsante **Verifica l’indirizzo del sito**.
2. **Test di protezione delle cartelle**: il tuo browser prova ad aprire dei file interni, che devono restare inaccessibili.
3. **Integrità dei file**: ogni file di Éclair viene confrontato con la sua impronta originale, e i file sospetti vengono segnalati, come uno script nascosto nei media o un `.php` senza riga di protezione in `data/`.
4. **Backup**: un archivio di tutto il tuo sito in un clic.
5. **Sessioni e blocchi**, poi il **registro di sicurezza**: accessi, errori, blocchi, cambi di password, backup.

I registri sono limitati a 1 MB: è impossibile gonfiarli per riempire il disco.

## Cosa ha rivelato l’audit di sicurezza offensivo?

Prima della sua pubblicazione, Éclair è stato attaccato in modo metodico: race condition, brute force, reindirizzamenti, injection, file trappola. Sono state trovate **17 vulnerabilità**, di cui 2 gravi, 7 medie e 8 minori, e tutte sono state corrette. I 13 scenari d’attacco sono stati poi ripetuti sulla versione corretta: tutti neutralizzati. L’assistente IA, arrivato con la versione 1.2.0, ha avuto un suo audit prima del rilascio.

I test automatici di Éclair, che contano 550 verifiche, riprendono gran parte di questi attacchi. Il dettaglio delle correzioni è nel [registro delle versioni](https://eclaircms.org/it/changelog).

## Quali accorgimenti rafforzano ancora il tuo CMS sicuro?

> **I 4 accorgimenti che contano** — 1. Attiva l’**autenticazione a due fattori** in Il mio profilo, per ogni amministratore.  
> 2. Scegli un **indirizzo di amministrazione personalizzato** in Impostazioni › Avanzate: meno bot busseranno alla porta.  
> 3. Clicca su **Verifica l’indirizzo del sito** in Sicurezza, poi attiva HSTS quando l’HTTPS funziona alla perfezione.  
> 4. **Scarica un backup** prima di ogni modifica importante, in Sicurezza › Backup.

Mantieni aggiornato anche PHP presso il tuo provider: Éclair funziona da PHP 8.1 a 8.5, e si consiglia l’8.3. Per backup e aggiornamenti, vedi la guida [Aggiornare, fare backup, traslocare](https://eclaircms.org/it/documentazione/aggiornamenti).

## Domande sulla sicurezza

### Éclair è davvero un CMS sicuro senza plugin di sicurezza?

Sì. Autenticazione a due fattori, protezione anti brute force, header rigorosi, controllo di integrità e backup sono integrati. Senza plugin da aggiornare, scompare la prima fonte di vulnerabilità dei CMS classici. Il [confronto con WordPress](https://eclaircms.org/it/eclair-vs-wordpress) quantifica questo divario.

### Ho perso il telefono dell’autenticazione a due fattori: cosa faccio?

Usa uno dei tuoi 8 codici di recupero. Se li hai persi e nessun altro amministratore può aiutarti, segui la procedura di recupero via FTP descritta in [Risoluzione dei problemi](https://eclaircms.org/it/documentazione/risoluzione-problemi#forgot-password).

### Un attaccante può bloccare il mio account sbagliando apposta?

No: il tuo dispositivo abituale non viene mai bloccato dagli errori di un altro. I limiti riguardano la rete dell’attaccante e l’account, senza impedirti di accedere da casa tua.

### Cosa fare se il controllo di integrità segnala un file modificato?

Se non hai personalizzato nulla, sostituisci il file con quello dell’archivio ufficiale. Se hai modificato il tuo tema, è normale: i file di app/theme risultano come modificati.
