Passwortschutz



'; exit; // Die Ausführung hier stoppen, damit der Rest der Seite nicht angezeigt wird, bis das Passwort korrekt eingegeben wurde } // Datenbankverbindung herstellen include_once 'config/config.php'; include_once 'log.php'; // Logdatei einbinden // Backup durchführen und direkt verschlüsseln if (isset($_POST['backup'])) { $timestamp = date('Y-m-d_H-i-s'); // Eindeutiger Zeitstempel für die Dateinamen $backup_file = "backup/backup_$timestamp.sql"; // Backup-Datei im "backup/"-Ordner speichern $command = "mysqldump -u $username -p$password $database > $backup_file"; exec($command); // Backup erfolgreich erstellt if (file_exists($backup_file)) { // Backup-Datei verschlüsseln $encryption_key = "2Tj&wuWCUeMrSD%tWS%2fv&vDQdFTeUQ"; // Geheimen Schlüssel für die Verschlüsselung $input_file = $backup_file; // Backup-Datei, die verschlüsselt werden soll $output_file = "backup/encrypted_backup_$timestamp.txt"; // Verschlüsselte Ausgabedatei // Verschlüsselungsalgorithmus und Modus (z.B. AES-256-CBC) $encryption_algorithm = 'aes-256-cbc'; // Initialisierungsvektor für die Verschlüsselung (zufällig generieren oder festlegen) $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($encryption_algorithm)); // Verschlüsselung durchführen if ($encrypted_data = openssl_encrypt(file_get_contents($input_file), $encryption_algorithm, $encryption_key, 0, $iv)) { // Initialisierungsvektor (IV) der verschlüsselten Datei hinzufügen $encrypted_data_with_iv = $iv . $encrypted_data; // Verschlüsselte Daten in Ausgabedatei schreiben file_put_contents($output_file, $encrypted_data_with_iv); // Erfolgreiche Meldung mit Download-Link anzeigen $download_button = "Download Backup"; echo ""; // Ereignis protokollieren logEvent('Backup erstellt und verschlüsselt', 'Backup', "Backup-Datei: $backup_file"); } else { echo "Fehler beim Erstellen und Verschlüsseln des Backups."; } } else { echo "Fehler beim Erstellen des Backups."; } } // Wiederherstellung durchführen if (isset($_POST['restore'])) { if (isset($_FILES['restore_file'])) { $restore_file = $_FILES['restore_file']['tmp_name']; // Backup-Datei entschlüsseln, bevor die Wiederherstellung durchgeführt wird $encryption_key = "2Tj&wuWCUeMrSD%tWS%2fv&vDQdFTeUQ"; // Geheimer Schlüssel für die Verschlüsselung $encryption_algorithm = 'aes-256-cbc'; $iv_size = openssl_cipher_iv_length($encryption_algorithm); $encrypted_data_with_iv = file_get_contents($restore_file); $iv = substr($encrypted_data_with_iv, 0, $iv_size); $encrypted_data = substr($encrypted_data_with_iv, $iv_size); $restored_data = openssl_decrypt($encrypted_data, $encryption_algorithm, $encryption_key, 0, $iv); // Temporäre Datei für die Wiederherstellung erstellen $temp_restore_file = 'temp_restore.sql'; file_put_contents($temp_restore_file, $restored_data); // Wiederherstellung durchführen $command = "mysql -u $username -p$password $database < $temp_restore_file"; exec($command); echo ""; // Ereignis protokollieren logEvent('Wiederherstellung durchgeführt', 'Wiederherstellung', "Wiederhergestellte Datei: $restore_file"); // Temporäre Datei löschen unlink($temp_restore_file); } else { echo "Datei für die Wiederherstellung nicht hochgeladen."; } } // Wiederherstellung aus ausgewähltem Backup durchführen if (isset($_POST['restore_from_selected'])) { $selected_backup = $_POST['selected_backup']; // Wiederherstellung durchführen $command = "mysql -u $username -p$password $database < $selected_backup"; exec($command); echo ""; // Ereignis protokollieren logEvent('Wiederherstellung ausgewähltes Backup durchgeführt', 'Wiederherstellung', "Ausgewählte Backup-Datei: $selected_backup"); } // Liste der letzten 10 Backups generieren $backup_files = glob('backup/encrypted_backup_*.txt'); // Nur nach verschlüsselten Backups suchen $backup_files = array_slice($backup_files, -10); // Die letzten 10 Backups auswählen ?> Backup und Wiederherstellung

Materialverwaltung

Backup und Wiederherstellung

Backup erstellen

Wiederherstellung durchführen

Letzte 10 verschlüsselte Backups