Lecteur Markdown
SAVE_DOCUMENTATION
Sauvegarde — Système de Backup Complet #
Objectif #
Ce plugin est un outil de maintenance critique conçu pour l'exportation et la sécurisation des données de BeamReactor. Il permet de générer une archive ZIP contenant la base de données et/ou les fichiers du site, avec une architecture de stockage sécurisée située en dehors de la racine publique (webroot) pour prévenir tout téléchargement non autorisé.
Fonctionnement #
Le processus de sauvegarde se déroule en plusieurs étapes automatisées :
- Vérification de l'environnement : Le script s'assure de la présence de la classe ZipArchive et de la possibilité d'écrire dans le dossier sécurisé beam\_private\_storage.
- Gestion du stockage : Par mesure de sécurité, les archives sont stockées un niveau au-dessus du DOCUMENT\_ROOT.
- Nettoyage : Avant chaque nouvelle sauvegarde, les anciens fichiers ZIP de même portée (scope) sont supprimés pour économiser l'espace disque.
- Exportation SQL : Utilise Beamreactor\\Database\\SQLOperations pour générer un dump de la base de données (si le rang de l'utilisateur le permet).
- Compression : Parcours récursif des dossiers pour ajouter les fichiers à l'archive.
- Téléchargement sécurisé : Un jeton de sécurité (token) unique est intégré au nom de fichier, et le téléchargement est géré via un script JavaScript dédié (download.js).
Niveaux d'accès et Portée (Scope) #
La quantité de données sauvegardées est strictement liée au rang de l'utilisateur :
Niveau Admin (Webmaster) : Portée limitée au dossier user. Cela inclut les skins, les fichiers HTML personnalisés, les journaux d'erreurs et les galeries de médias. La base de données n'est pas incluse à ce niveau par défaut.
Niveau Overmind (Propriétaire/Auteur) : Portée complète (full). Inclut l'intégralité des sources PHP du CMS (noyau, plugins), ainsi qu'un export complet de la base de données SQL.
Sécurité #
Isolation : Les sauvegardes ne sont jamais accessibles directement via une URL publique (stockage hors-racine).
Entropie : Les noms de fichiers incluent un horodatage et un sel de sécurité MD5 unique.
Nettoyage automatique : Le fichier SQL temporaire est supprimé immédiatement après son ajout à l'archive ZIP via une fonction register\_shutdown\_function.
Contrôle d'accès : Vérification systématique via la fonction secure() avant toute exécution.
Structure #
/plugins/save/
├── save.php
├── /css/
│ └── save.css
├── /locale/
│ ├── save.en.inc.php
│ └── save.fr.inc.php
└── /doc/
└── save.md
Changelog #
2.1.0 (2026-01-14) : Mise à jour de sécurité.
2.0.0 (2025-12-26) : Refonte complète avec support de ZipArchive et intégration des SQLOperations.
1.0.0 (2005) : Version initiale pour XDP.