4 Parcours ExpertLeçon 7 sur 8 8 min de lecture

Sécurité avancée et maintenance

  1. 1. L'architecture d'Éclair
  2. 2. Développement local et tests
  3. 3. Personnaliser les gabarits du thème
  4. 4. Nginx, VPS, proxy et CDN : déployer Éclair
  5. 5. Performance d'Éclair : garder 100 sur 100
  6. 6. Migrer depuis WordPress ou Wix
  7. 7. Sécurité avancée et maintenance
  8. 8. Industrialiser Éclair en agence
Sommaire
  1. Ce que la revue de sécurité offensive a vérifié
  2. Les protections des données, en détail
  3. ECLAIR_SECRET : pourquoi et quand ?
  4. Contrôle d'intégrité et manifest.php
  5. Journaux bornés et accès perdu
  6. Comment mettre à jour Éclair sans rien casser ?
  7. Sauvegardes hors site et droits des fichiers
  8. Sécurité avancée : HSTS, administration et pare-feu
  9. Surveillance et révocation des accès MCP
  10. À retenir
  11. Pour aller plus loin
  12. 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éeVérification automatique
site déposé puis oublié, installé par un inconnuinstallateur verrouillé après 2 heures
adresse du site falsifiéejamais utilisée pour rediriger les visiteurs
mots de passe testés en parallèleblocage 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 web404, 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

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ésultatSignificationQue faire
Fichiers modifiéscontenu différent de l'originalnormal pour des gabarits personnalisés ; sinon, remets le fichier de l'archive et cherche la cause
Fichiers manquantssupprimés ou mal envoyésrenvoie-les depuis l'archive
Fichiers inconnusprésents dans app/, assets/ ou à la racine, absents du manifestesouvent un reste d'ancienne version : supprime-le
Fichiers suspectsdans media/, autre chose qu'une image ou une police ; dans data/ ou cache/, un script ou un .php sans ligne de protectiontraite-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 ?

Mise à jour d'Éclair : remplacer app et assets, garder data et media
Ce qu'une mise à jour remplace, et ce qu'elle ne touche jamais.
  1. Télécharge une sauvegarde : Sécurité › Télécharger une sauvegarde, avec ton mot de passe.
  2. Par FTP, supprime les dossiers app/ et assets/, puis envoie ceux de la nouvelle version avec index.php et .htaccess. Supprimer d'abord évite de garder d'anciens fichiers, que le contrôle d'intégrité signalerait comme inconnus.
  3. Ne touche ni à data/ (contenus, réglages, comptes, CSS personnalisé), ni à media/ (images), ni à eclair-config.php.
  4. Dans Réglages › Avancé, clique sur Vider le cache : les pages enregistrées pointent encore vers les anciennes versions des fichiers statiques.
  5. 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

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équenceAction
chaque moislire le niveau de protection et le journal de sécurité, lancer l'analyse d'intégrité, ranger une sauvegarde hors site
à chaque versionsuivre la procédure de mise à jour, puis relancer l'analyse
chaque trimestrerelire les comptes dans Utilisateurs et couper les applications MCP inutiles
en continuune 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

Pour aller plus loin

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/.

Toutes les leçons du parcours