- Accueil
- Les parcours
- Parcours Expert
- Sécurité avancée et maintenance
Sécurité avancée et maintenance
Sommaire
- Ce que la revue de sécurité offensive a vérifié
- Les protections des données, en détail
- ECLAIR_SECRET : pourquoi et quand ?
- Contrôle d'intégrité et manifest.php
- Journaux bornés et accès perdu
- Comment mettre à jour Éclair sans rien casser ?
- Sauvegardes hors site et droits des fichiers
- Sécurité avancée : HSTS, administration et pare-feu
- Surveillance et révocation des accès MCP
- À retenir
- Pour aller plus loin
- Questions fréquentes
Sommaire
- Ce que la revue de sécurité offensive a vérifié
- Les protections des données, en détail
- ECLAIR_SECRET : pourquoi et quand ?
- Contrôle d'intégrité et manifest.php
- Journaux bornés et accès perdu
- Comment mettre à jour Éclair sans rien casser ?
- Sauvegardes hors site et droits des fichiers
- Sécurité avancée : HSTS, administration et pare-feu
- Surveillance et révocation des accès MCP
- À retenir
- Pour aller plus loin
- Questions fréquentes
La sécurité avancée d'Éclair commence là où s'arrêtent les réglages du quotidien : comprendre ce qui protège tes données, réparer un accès perdu, mettre à jour sans rien casser et surveiller le site dans la durée. Cette leçon s'adresse à qui administre un ou plusieurs sites, sur un hébergement mutualisé comme sur un VPS.
Ce que tu sauras faire
Comprendre les protections
Ce que la revue offensive a vérifié et ce qu'Éclair fait seul.
Mettre à jour sans risque
La procédure complète, par FTP ou en SSH.
Tenir une routine
Sauvegardes hors site, intégrité, journaux et accès MCP.
Ce que la revue de sécurité offensive a vérifié
Toute sécurité avancée commence par une question : qu'a-t-on vraiment testé ? Éclair a été attaqué volontairement : courses entre requêtes, force brute, redirections, injections, fichiers piégés. La revue a trouvé 17 failles (2 graves, 7 moyennes, 8 mineures), toutes corrigées, puis ses 13 scénarios d'attaque ont été rejoués sur la version corrigée : tous neutralisés. Une grande partie tourne désormais à chaque exécution de php tests/run.php, par exemple :
| Attaque rejouée | Vérification automatique |
|---|---|
| site déposé puis oublié, installé par un inconnu | installateur verrouillé après 2 heures |
| adresse du site falsifiée | jamais utilisée pour rediriger les visiteurs |
| mots de passe testés en parallèle | blocage par réseau, propriétaire sur son appareil habituel jamais bloqué |
| cache empoisonné par un en-tête forgé | en-têtes indépendants du protocole annoncé |
| fichier de données appelé depuis le web | 404, et ligne <?php exit; ?> en tête du fichier |
| fichier de secours FTP piégé | refusé et supprimé sans ligne de protection |
Les protections des données, en détail
- Aucune base de données, donc aucune injection SQL. Les dossiers
data/,app/etcache/sont interdits par le serveur, et chaque fichier de données commence par<?php exit; ?>. - Fichiers privés : droits 0600, dossiers de données et de cache en 0700, écritures atomiques sous verrou. Aucune séquence
<?phpne peut être écrite dans un fichier de données. - Sessions : aucune avant la connexion, des fichiers nommés par l'empreinte SHA-256 de leur identifiant, des cookies
HttpOnly,Secureen HTTPS etSameSite=Strict. - Mots de passe : Argon2id avec 19 Mio et 2 passes, bcrypt en repli. Une empreinte factice rend la vérification d'un e-mail inconnu aussi longue que celle d'un vrai compte : impossible de deviner quels comptes existent.
- Clés d'API : chiffrées dans
data/vault.php(libsodium, ou AES-256-GCM à défaut), jamais renvoyées au navigateur, exclues des sauvegardes.
ECLAIR_SECRET : pourquoi et quand ?
La clé du coffre est dérivée du secret du site, rangé dans data/keys.php. Quelqu'un qui obtiendrait une copie de data/ seul (archive manuelle du dossier, volume Docker, dossier de données mal protégé) pourrait donc déchiffrer tes clés d'API. La constante ECLAIR_SECRET ajoute un second secret, rangé hors de data/ : il faut alors les deux.
<?php
// eclair-config.php, à côté d'index.php
defined('ECLAIR') || exit;
define('ECLAIR_SECRET', 'une-longue-phrase-secrète-propre-à-ce-site');
Définis-la avant d'enregistrer tes clés d'API. Si tu l'ajoutes, la changes ou la perds ensuite, les clés déjà enregistrées deviennent illisibles : il suffit de les saisir de nouveau dans Réglages › Assistant IA, rien d'autre n'en dépend. Range cette phrase dans ton gestionnaire de mots de passe, une par site. Le fichier eclair-config.php est protégé : le serveur refuse tout .php autre qu'index.php, et le contrôle d'intégrité le reconnaît.
Contrôle d'intégrité et manifest.php
Dans Sécurité › Intégrité des fichiers, Analyser maintenant compare chaque fichier d'Éclair à son empreinte d'origine, enregistrée dans app/manifest.php, et cherche des fichiers suspects.
| Résultat | Signification | Que faire |
|---|---|---|
| Fichiers modifiés | contenu différent de l'original | normal pour des gabarits personnalisés ; sinon, remets le fichier de l'archive et cherche la cause |
| Fichiers manquants | supprimés ou mal envoyés | renvoie-les depuis l'archive |
| Fichiers inconnus | présents dans app/, assets/ ou à la racine, absents du manifeste | souvent un reste d'ancienne version : supprime-le |
| Fichiers suspects | dans media/, autre chose qu'une image ou une police ; dans data/ ou cache/, un script ou un .php sans ligne de protection | traite-le comme une intrusion |
Lance l'analyse après chaque mise à jour, chaque mois, et dès qu'un comportement t'étonne. Face à un fichier suspect : télécharge une sauvegarde, garde une copie du fichier pour l'analyser, supprime-le, change les mots de passe et cherche par où l'intrus est passé.
Journaux bornés et accès perdu
Les journaux data/logs/security.php et data/logs/errors.php enregistrent une ligne JSON par événement. Chaque champ est tronqué à 300 caractères, et au-delà de 1 Mo, seuls les 256 derniers Ko sont gardés : un attaquant ne peut pas les faire gonfler. La page Sécurité affiche le Journal de sécurité (connexions, échecs, blocages, double authentification, sauvegardes, réglages modifiés) et les Dernières erreurs techniques.
Mot de passe oublié, ou téléphone de double authentification perdu, sans autre administrateur ? Crée par FTP le fichier data/reset.php, avec exactement ces trois lignes :
<?php exit; ?>
ton-adresse@email.fr
TonNouveauMotDePasse2026
Dans les 24 heures, connecte-toi avec cet e-mail et ce mot de passe, qui doit respecter les règles habituelles (10 caractères au moins). Le mot de passe est remplacé, la double authentification du compte désactivée, tes autres sessions fermées et le fichier supprimé. Sans la première ligne, le fichier est refusé et effacé. De même, si l'installation affiche « Installation verrouillée », supprime data/install-window.php : la fenêtre de 2 heures se rouvre.
Comment mettre à jour Éclair sans rien casser ?

- Télécharge une sauvegarde : Sécurité › Télécharger une sauvegarde, avec ton mot de passe.
- Par FTP, supprime les dossiers
app/etassets/, puis envoie ceux de la nouvelle version avecindex.phpet.htaccess. Supprimer d'abord évite de garder d'anciens fichiers, que le contrôle d'intégrité signalerait comme inconnus. - Ne touche ni à
data/(contenus, réglages, comptes, CSS personnalisé), ni àmedia/(images), ni àeclair-config.php. - Dans Réglages › Avancé, clique sur Vider le cache : les pages enregistrées pointent encore vers les anciennes versions des fichiers statiques.
- Lance Analyser maintenant : seuls tes éventuels gabarits personnalisés doivent apparaître.
En SSH, les étapes 2 et 3 tiennent en quatre commandes, l'archive contenant un dossier eclair/ :
cd /var/www/eclair
unzip -q ~/eclair-cms-1.8.0.zip -d ~/eclair-new
rm -rf app assets
cp -r ~/eclair-new/eclair/app ~/eclair-new/eclair/assets ~/eclair-new/eclair/index.php ~/eclair-new/eclair/.htaccess .
Sauvegardes hors site et droits des fichiers
Pas de sécurité avancée sans sauvegarde hors site. La sauvegarde ZIP contient data/ et media/, sans les sessions, les compteurs, le dossier ai/ (conversations et connexions MCP), vault.php ni reset.php. Pour restaurer, remplace data/ et media/ par ceux de l'archive, vide le cache, puis saisis de nouveau tes clés d'API et reconnecte Claude ou ChatGPT. Range au moins une copie hors de l'hébergement, et fais-en une avant chaque mise à jour.
Sur un VPS, automatise la même sauvegarde avec tar, en excluant les mêmes éléments :
tar -czf /sauvegardes/eclair-$(date +%F).tar.gz -C /var/www/eclair \
--exclude=data/sessions --exclude=data/limits --exclude=data/ai \
--exclude=data/vault.php --exclude=data/reset.php data media
Côté droits, Éclair n'écrit que dans data/, cache/ et media/. Sur un VPS, seuls ces trois dossiers doivent appartenir à l'utilisateur de PHP ; le code (app/, assets/, index.php) peut rester en lecture seule pour lui, et eclair-config.php lisible par PHP mais pas par les autres comptes. Sur un mutualisé, garde les dossiers en 755, comme le demande l'assistant d'installation.
Sécurité avancée : HSTS, administration et pare-feu
- HSTS (Réglages › Avancé) : Éclair envoie
Strict-Transport-Security: max-age=31536000, un an, sans les sous-domaines. N'active cette option qu'une fois le HTTPS parfaitement stable. - Adresse de l'administration (Réglages › Avancé, 3 à 40 caractères : minuscules, chiffres, tirets) : une adresse personnelle éloigne les robots. Ni le bouton Modifier du site ni la découverte du connecteur MCP ne la révèlent : note-la bien.
- Pare-feu applicatif : Éclair n'en a pas besoin, mais tu peux ajouter une couche, comme les règles OWASP CRS avec ModSecurity ou le pare-feu de ton CDN. Teste ensuite l'enregistrement dans l'éditeur,
/_eclair/et/.well-known/: ces requêtes contiennent du JSON et du HTML qui déclenchent parfois des faux positifs.
Surveillance et révocation des accès MCP
La carte Niveau de protection de la page Sécurité résume sept points : HTTPS imposé, adresse du site vérifiée, double authentification pour tous les administrateurs, adresse d'administration personnalisée, PHP 8.2 ou plus, mots de passe en Argon2id, HSTS. Vise 100 %.
| Fréquence | Action |
|---|---|
| chaque mois | lire le niveau de protection et le journal de sécurité, lancer l'analyse d'intégrité, ranger une sauvegarde hors site |
| à chaque version | suivre la procédure de mise à jour, puis relancer l'analyse |
| chaque trimestre | relire les comptes dans Utilisateurs et couper les applications MCP inutiles |
| en continu | une surveillance de disponibilité externe, qui t'alerte si le site ne répond plus |
Pour révoquer le connecteur MCP, clique sur Couper l'accès face à l'application dans Réglages › Assistant IA. Décocher Autoriser les connexions MCP coupe toutes les applications d'un coup, tout comme un changement de mot de passe ou Déconnecter mes autres appareils dans ton profil. Les jetons d'accès durent une heure, et seules leurs empreintes sont stockées.
À retenir
- La sécurité avancée d'Éclair repose sur des protections vérifiées par une revue offensive et rejouées par les tests automatiques.
- Définis
ECLAIR_SECRETavant d'enregistrer des clés d'API, et garde la phrase hors du site. - Une mise à jour remplace
app/etassets/, gardedata/,media/eteclair-config.php, puis vide le cache. - Le contrôle d'intégrité, mensuel et après chaque mise à jour, repère fichiers modifiés, inconnus et suspects.
data/reset.phprend l'accès en 24 heures, sans aide extérieure, à qui contrôle le FTP.
Pour aller plus loin
- La sécurité au quotidien : double authentification, rôles et sauvegarde en un clic.
- Comprendre le connecteur MCP : jetons, accords et droits des applications.
- Nginx, VPS, proxy et CDN : HTTPS, HSTS et adresse IP réelle hors d'Apache.
- OWASP : aide-mémoire sur le stockage des mots de passe, d'où viennent les réglages Argon2id d'Éclair.
- PHP : versions maintenues et dates de fin de support.
Questions fréquentes
La sauvegarde ZIP contient-elle mes clés d'API ?
Non : vault.php et le dossier ai/ en sont exclus. Après une restauration, saisis de nouveau tes clés dans Réglages › Assistant IA et reconnecte tes applications MCP.
Que faire si le contrôle d'intégrité signale un fichier suspect ?
Traite-le comme une intrusion, sans attendre. La marche à suivre est décrite dans la section sur le contrôle d'intégrité : sauvegarde, copie pour analyse, suppression, nouveaux mots de passe et recherche de la faille.
Que se passe-t-il si je perds eclair-config.php et ECLAIR_SECRET ?
Seules les clés d'API deviennent illisibles : le reste du site fonctionne. Recrée le fichier avec une nouvelle phrase, puis saisis de nouveau tes clés.
Faut-il un pare-feu applicatif pour Éclair ?
Ce n'est pas nécessaire, ses protections sont intégrées. Si tu en ajoutes un, vérifie qu'il laisse passer l'éditeur, /_eclair/ et /.well-known/.