diff --git a/backup_restore.php b/backup_restore.php index 85d2900..6de6a67 100644 --- a/backup_restore.php +++ b/backup_restore.php @@ -1,417 +1,418 @@ - - - - - - Passwortschutz - - - - -
-

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

- - -
- - + + + + + + Passwortschutz + + + + +
+

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

+ + +
+ +