- Inicio
- Rutas de aprendizaje
- Ruta Experto
- Seguridad avanzada y mantenimiento
Seguridad avanzada y mantenimiento
- 1. La arquitectura de Éclair
- 2. Desarrollo local y pruebas
- 3. Personalizar las plantillas del tema
- 4. Nginx, VPS, proxy y CDN: desplegar Éclair
- 5. Rendimiento de Éclair: mantener 100 sobre 100
- 6. Migrar desde WordPress o Wix
- 7. Seguridad avanzada y mantenimiento
- 8. Industrializar Éclair en una agencia
Índice
- Lo que comprobó la auditoría de seguridad ofensiva
- Las protecciones de los datos, en detalle
- ECLAIR_SECRET: ¿por qué y cuándo?
- Control de integridad y manifest.php
- Registros acotados y acceso perdido
- ¿Cómo actualizar Éclair sin romper nada?
- Copias de seguridad externas y permisos de los archivos
- Seguridad avanzada: HSTS, administración y cortafuegos
- Vigilancia y revocación de los accesos MCP
- Para recordar
- Para saber más
- Preguntas frecuentes
Índice
- Lo que comprobó la auditoría de seguridad ofensiva
- Las protecciones de los datos, en detalle
- ECLAIR_SECRET: ¿por qué y cuándo?
- Control de integridad y manifest.php
- Registros acotados y acceso perdido
- ¿Cómo actualizar Éclair sin romper nada?
- Copias de seguridad externas y permisos de los archivos
- Seguridad avanzada: HSTS, administración y cortafuegos
- Vigilancia y revocación de los accesos MCP
- Para recordar
- Para saber más
- Preguntas frecuentes
La seguridad avanzada de Éclair empieza donde terminan los ajustes del día a día: entender qué protege tus datos, recuperar un acceso perdido, actualizar sin romper nada y vigilar el sitio a largo plazo. Esta lección está pensada para quien administra uno o varios sitios, tanto en un hosting compartido como en un VPS.
Lo que sabrás hacer
Entender las protecciones
Lo que comprobó la auditoría ofensiva y lo que Éclair hace solo.
Actualizar sin riesgos
El procedimiento completo, por FTP o por SSH.
Mantener una rutina
Copias externas, integridad, registros y accesos MCP.
Lo que comprobó la auditoría de seguridad ofensiva
Toda seguridad avanzada empieza con una pregunta: ¿qué se ha probado de verdad? Éclair fue atacado a propósito: condiciones de carrera entre peticiones, fuerza bruta, redirecciones, inyecciones, archivos trampa. La auditoría encontró 17 vulnerabilidades (2 graves, 7 medias y 8 leves), todas corregidas, y después se repitieron sus 13 escenarios de ataque sobre la versión corregida: todos quedaron neutralizados. Gran parte de ellos se ejecuta ahora con cada php tests/run.php, por ejemplo:
| Ataque repetido | Comprobación automática |
|---|---|
| sitio subido y olvidado, instalado por un desconocido | instalador bloqueado pasadas 2 horas |
| dirección del sitio falsificada | nunca se usa para redirigir a los visitantes |
| contraseñas probadas en paralelo | bloqueo por red; el propietario, desde su dispositivo habitual, nunca queda bloqueado |
| caché envenenada con una cabecera falsificada | cabeceras independientes del protocolo declarado |
| archivo de datos llamado desde la web | 404, y línea <?php exit; ?> al principio del archivo |
| archivo trampa de recuperación por FTP | rechazado y borrado si no tiene la línea de protección |
Las protecciones de los datos, en detalle
- Ninguna base de datos, así que ninguna inyección SQL. El servidor prohíbe el acceso a las carpetas
data/,app/ycache/, y cada archivo de datos empieza por<?php exit; ?>. - Archivos privados: permisos 0600, carpetas de datos y de caché en 0700, escrituras atómicas con bloqueo. No se puede escribir ninguna secuencia
<?phpen un archivo de datos. - Sesiones: ninguna antes de iniciar sesión, archivos nombrados con la huella SHA-256 de su identificador, cookies
HttpOnly,Secureen HTTPS ySameSite=Strict. - Contraseñas: Argon2id con 19 MiB y 2 pasadas, con bcrypt como alternativa. Un hash ficticio hace que la comprobación de un correo desconocido dure lo mismo que la de una cuenta real: es imposible adivinar qué cuentas existen.
- Claves de API: cifradas en
data/vault.php(libsodium o, en su defecto, AES-256-GCM), nunca se devuelven al navegador y quedan fuera de las copias de seguridad.
ECLAIR_SECRET: ¿por qué y cuándo?
La clave de la caja fuerte se deriva del secreto del sitio, guardado en data/keys.php. Quien consiguiera una copia solo de data/ (un archivo manual de la carpeta, un volumen Docker, una carpeta de datos mal protegida) podría, por tanto, descifrar tus claves de API. La constante ECLAIR_SECRET añade un segundo secreto, guardado fuera de data/: entonces hacen falta los dos.
<?php
// eclair-config.php, junto a index.php
defined('ECLAIR') || exit;
define('ECLAIR_SECRET', 'une-longue-phrase-secrète-propre-à-ce-site');
Defínela antes de guardar tus claves de API. Si la añades, la cambias o la pierdes después, las claves ya guardadas se vuelven ilegibles: basta con volver a introducirlas en Ajustes › Asistente IA, porque nada más depende de ella. Guarda esta frase en tu gestor de contraseñas, una por sitio. El archivo eclair-config.php está protegido: el servidor rechaza cualquier .php distinto de index.php, y el control de integridad lo reconoce.
Control de integridad y manifest.php
En Seguridad › Integridad de los archivos, Analizar ahora compara cada archivo de Éclair con su huella original, guardada en app/manifest.php, y busca archivos sospechosos.
| Resultado | Significado | Qué hacer |
|---|---|---|
| Archivos modificados | contenido distinto del original | normal si tienes plantillas personalizadas; si no, vuelve a poner el archivo del ZIP y busca la causa |
| Archivos que faltan | borrados o mal subidos | vuelve a subirlos desde el ZIP |
| Archivos desconocidos | presentes en app/, assets/ o en la raíz, pero ausentes del manifiesto | a menudo, un resto de una versión antigua: bórralo |
| Archivos sospechosos | en media/, algo que no es ni una imagen ni una tipografía; en data/ o cache/, un script o un .php sin línea de protección | trátalo como una intrusión |
Lanza el análisis después de cada actualización, cada mes y en cuanto algo te extrañe. Ante un archivo sospechoso: descarga una copia de seguridad, guarda una copia del archivo para analizarlo, bórralo, cambia las contraseñas y busca por dónde entró el intruso.
Registros acotados y acceso perdido
Los registros data/logs/security.php y data/logs/errors.php guardan una línea JSON por evento. Cada campo se trunca a 300 caracteres y, por encima de 1 MB, solo se conservan los últimos 256 KB: un atacante no puede hacerlos crecer sin límite. La página Seguridad muestra el Registro de seguridad (inicios de sesión, fallos, bloqueos, verificación en dos pasos, copias de seguridad, ajustes modificados) y los Últimos errores técnicos.
¿Contraseña olvidada, o móvil de la verificación en dos pasos perdido, y ningún otro administrador? Crea por FTP el archivo data/reset.php con exactamente estas tres líneas, poniendo tu correo y tu nueva contraseña en las dos últimas:
<?php exit; ?>
ton-adresse@email.fr
TonNouveauMotDePasse2026
En las 24 horas siguientes, inicia sesión con ese correo y esa contraseña, que debe cumplir las reglas habituales (10 caracteres como mínimo). La contraseña se sustituye, la verificación en dos pasos de la cuenta se desactiva, tus demás sesiones se cierran y el archivo se borra. Sin la primera línea, el archivo se rechaza y se elimina. Del mismo modo, si la instalación muestra «Instalación bloqueada», borra data/install-window.php: el plazo de 2 horas vuelve a abrirse.
¿Cómo actualizar Éclair sin romper nada?

- Descarga una copia de seguridad: Seguridad › Descargar una copia de seguridad, con tu contraseña.
- Por FTP, borra las carpetas
app/yassets/y después sube las de la nueva versión junto conindex.phpy.htaccess. Borrar primero evita que queden archivos antiguos, que el control de integridad señalaría como desconocidos. - No toques ni
data/(contenidos, ajustes, cuentas, CSS personalizado), nimedia/(imágenes), nieclair-config.php. - En Ajustes › Avanzado, haz clic en Vaciar la caché: las páginas guardadas todavía apuntan a las versiones antiguas de los archivos estáticos.
- Lanza Analizar ahora: solo deben aparecer tus posibles plantillas personalizadas.
Por SSH, los pasos 2 y 3 caben en cuatro comandos, ya que el ZIP contiene una carpeta 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 .
Copias de seguridad externas y permisos de los archivos
No hay seguridad avanzada sin una copia de seguridad fuera del servidor. La copia ZIP contiene data/ y media/, sin las sesiones, los contadores, la carpeta ai/ (conversaciones y conexiones MCP), vault.php ni reset.php. Para restaurar, sustituye data/ y media/ por los del ZIP, vacía la caché, vuelve a introducir tus claves de API y vuelve a conectar Claude o ChatGPT. Guarda al menos una copia fuera del hosting y haz una antes de cada actualización.
En un VPS, automatiza la misma copia con tar, excluyendo los mismos elementos:
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
En cuanto a los permisos, Éclair solo escribe en data/, cache/ y media/. En un VPS, solo esas tres carpetas deben pertenecer al usuario de PHP; el código (app/, assets/, index.php) puede quedarse en solo lectura para él, y eclair-config.php, legible por PHP pero no por las demás cuentas. En un hosting compartido, deja las carpetas en 755, como pide el asistente de instalación.
Seguridad avanzada: HSTS, administración y cortafuegos
- HSTS (Ajustes › Avanzado): Éclair envía
Strict-Transport-Security: max-age=31536000, un año, sin los subdominios. Activa esta opción solo cuando el HTTPS sea totalmente estable. - Dirección de la administración (Ajustes › Avanzado, de 3 a 40 caracteres: minúsculas, números y guiones): una dirección personal aleja a los robots. Ni el botón Editar del sitio ni el descubrimiento del conector MCP la revelan: apúntala bien.
- Cortafuegos de aplicaciones (WAF): Éclair no lo necesita, pero puedes añadir una capa, como las reglas OWASP CRS con ModSecurity o el cortafuegos de tu CDN. Después, prueba a guardar en el editor,
/_eclair/y/.well-known/: esas peticiones contienen JSON y HTML que a veces provocan falsos positivos.
Vigilancia y revocación de los accesos MCP
La tarjeta Nivel de protección de la página Seguridad resume siete puntos: HTTPS obligatorio, dirección del sitio verificada, verificación en dos pasos para todos los administradores, dirección de administración personalizada, PHP 8.2 o superior, contraseñas en Argon2id y HSTS. Apunta al 100 %.
| Frecuencia | Acción |
|---|---|
| cada mes | leer el nivel de protección y el registro de seguridad, lanzar el análisis de integridad, guardar una copia fuera del servidor |
| con cada versión | seguir el procedimiento de actualización y volver a lanzar el análisis |
| cada trimestre | revisar las cuentas en Usuarios y revocar las aplicaciones MCP innecesarias |
| de forma continua | una vigilancia externa de disponibilidad que te avise si el sitio deja de responder |
Para revocar el conector MCP, haz clic en Revocar el acceso junto a la aplicación, en Ajustes › Asistente IA. Desmarcar Permitir conexiones MCP desconecta todas las aplicaciones de golpe, igual que un cambio de contraseña o Cerrar sesión en mis otros dispositivos en tu perfil. Los tokens de acceso duran una hora y solo se guardan sus huellas.
Para recordar
- La seguridad avanzada de Éclair se basa en protecciones verificadas por una auditoría ofensiva y repetidas por las pruebas automáticas.
- Define
ECLAIR_SECRETantes de guardar claves de API y guarda la frase fuera del sitio. - Una actualización sustituye
app/yassets/, conservadata/,media/yeclair-config.php, y termina vaciando la caché. - El control de integridad, cada mes y después de cada actualización, detecta archivos modificados, desconocidos y sospechosos.
data/reset.phpdevuelve el acceso en 24 horas, sin ayuda externa, a quien controla el FTP.
Para saber más
- La seguridad en el día a día: verificación en dos pasos, roles y copia de seguridad en un clic.
- Entender el conector MCP: tokens, autorizaciones y permisos de las aplicaciones.
- Nginx, VPS, proxy y CDN: HTTPS, HSTS y dirección IP real fuera de Apache.
- OWASP: hoja de referencia sobre el almacenamiento de contraseñas, de donde salen los ajustes Argon2id de Éclair (en inglés).
- PHP: versiones con soporte y fechas de fin de soporte, en inglés.
Preguntas frecuentes
¿La copia de seguridad ZIP contiene mis claves de API?
No: vault.php y la carpeta ai/ quedan fuera. Después de una restauración, vuelve a introducir tus claves en Ajustes › Asistente IA y vuelve a conectar tus aplicaciones MCP.
¿Qué hago si el control de integridad señala un archivo sospechoso?
Trátalo como una intrusión, sin esperar. Los pasos se describen en la sección sobre el control de integridad: copia de seguridad, copia del archivo para analizarlo, borrado, contraseñas nuevas y búsqueda de la vulnerabilidad.
¿Qué pasa si pierdo eclair-config.php y ECLAIR_SECRET?
Solo las claves de API se vuelven ilegibles: el resto del sitio funciona. Crea de nuevo el archivo con una frase nueva y vuelve a introducir tus claves.
¿Hace falta un cortafuegos de aplicaciones para Éclair?
No es necesario: sus protecciones están integradas. Si añades uno, comprueba que deja pasar el editor, /_eclair/ y /.well-known/.