Corrige un soucis de Overflow 32 bits

This commit is contained in:
voxan committed 2026-10-21 22:16:42 +02:00
1 parent 3f142a5388
commit 0c8d9cba6d
1 file changed
+14 -11
+14 -11
View File
@@ -10,24 +10,24 @@
* une tache cron/systemd timer sur le serveur. * une tache cron/systemd timer sur le serveur.
* *
* Regle de securite appliquee ici : * Regle de securite appliquee ici :
* - Pas de shell_exec()/exec()/proc_open() sur une entree utilisateur. * - Pas de shell_exec()/exec()/proc_open() sur une entree utilisateur.
* - Pas de mot de passe DB affiche : on reference une variable * - Pas de mot de passe DB affiche : on reference une variable
* d'environnement ou un fichier .my.cnf externe. * d'environnement ou un fichier .my.cnf externe.
* - Seule action en base : enregistrement de metadonnees de sauvegarde * - Seule action en base : enregistrement de metadonnees de sauvegarde
* (date, taille, note) dans une table de suivi, jamais le contenu. * (date, taille, note) dans une table de suivi, jamais le contenu.
* *
* CORRIGE (20/09/2026, suite a erreur 500 en usage reel) : * CORRIGE (20/09/2026, suite a erreur 500 en usage reel) :
* - require_once _nav.php manquait, provoquant une erreur fatale * - require_once _nav.php manquait, provoquant une erreur fatale
* "Call to undefined function render_admin_nav()". * "Call to undefined function render_admin_nav()".
* - La table backup_log necessaire a cette page n'existait pas : * - La table backup_log necessaire a cette page n'existait pas :
* voir admin/sql/migration_add_missing_tables.sql. * voir admin/sql/migration_add_missing_tables.sql.
* *
* Corrige suite a l'audit du 20/09/2026 : le detail technique des * 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 * exceptions n'est plus affiche a l'ecran ; il est journalise via
* error_log(). * error_log().
* *
* Hypothese de schema : backup_log(id, created_at, admin_username, * Hypothese de schema : backup_log(id, created_at, admin_username,
* label, note, size_bytes_reported) * label, note, size_bytes_reported)
*/ */
declare(strict_types=1); declare(strict_types=1);
@@ -54,7 +54,10 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
} else { } else {
$label = trim((string)($_POST['label'] ?? '')); $label = trim((string)($_POST['label'] ?? ''));
$note = trim((string)($_POST['note'] ?? '')); $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 === '') { if ($label === '') {
$feedback = 'Le libelle de la sauvegarde est obligatoire.'; $feedback = 'Le libelle de la sauvegarde est obligatoire.';