From 0c8d9cba6d63e5fa291760b2cc7f58f169be71ec Mon Sep 17 00:00:00 2001 From: voxan Date: Wed, 21 Oct 2026 22:16:42 +0200 Subject: [PATCH] Corrige un soucis de Overflow 32 bits --- admin/backup.php | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/admin/backup.php b/admin/backup.php index a8c6179..e3b98cf 100644 --- a/admin/backup.php +++ b/admin/backup.php @@ -10,24 +10,24 @@ * une tache cron/systemd timer sur le serveur. * * Regle de securite appliquee ici : - * - Pas de shell_exec()/exec()/proc_open() sur une entree utilisateur. - * - Pas de mot de passe DB affiche : on reference une variable - * d'environnement ou un fichier .my.cnf externe. - * - Seule action en base : enregistrement de metadonnees de sauvegarde - * (date, taille, note) dans une table de suivi, jamais le contenu. + * - Pas de shell_exec()/exec()/proc_open() sur une entree utilisateur. + * - Pas de mot de passe DB affiche : on reference une variable + * d'environnement ou un fichier .my.cnf externe. + * - Seule action en base : enregistrement de metadonnees de sauvegarde + * (date, taille, note) dans une table de suivi, jamais le contenu. * * CORRIGE (20/09/2026, suite a erreur 500 en usage reel) : - * - require_once _nav.php manquait, provoquant une erreur fatale - * "Call to undefined function render_admin_nav()". - * - La table backup_log necessaire a cette page n'existait pas : - * voir admin/sql/migration_add_missing_tables.sql. + * - require_once _nav.php manquait, provoquant une erreur fatale + * "Call to undefined function render_admin_nav()". + * - La table backup_log necessaire a cette page n'existait pas : + * voir admin/sql/migration_add_missing_tables.sql. * * Corrige suite a l'audit du 20/09/2026 : le detail technique des * exceptions n'est plus affiche a l'ecran ; il est journalise via * error_log(). * * Hypothese de schema : backup_log(id, created_at, admin_username, - * label, note, size_bytes_reported) + * label, note, size_bytes_reported) */ declare(strict_types=1); @@ -54,7 +54,10 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } else { $label = trim((string)($_POST['label'] ?? '')); $note = trim((string)($_POST['note'] ?? '')); - $sizeBytes = filter_input(INPUT_POST, 'size_bytes', FILTER_VALIDATE_INT) ?: null; + + // Correction : Accepte les grands nombres (BigInt) pour les gros backups + $rawSize = $_POST['size_bytes'] ?? ''; + $sizeBytes = (ctype_digit((string)$rawSize)) ? $rawSize : null; if ($label === '') { $feedback = 'Le libelle de la sauvegarde est obligatoire.';