En vous promenant sur Beamreactor, nous stockons votre IP 48h pour des raisons de sécurité.

Lecteur Markdown

save Documentation › SAVE_DOCUMENTATION

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.

de en fr