From 466af070953c0428b29432d38eca0193127df09c Mon Sep 17 00:00:00 2001 From: Bruno Eckhardt Date: Mon, 16 Feb 2026 10:24:24 +0100 Subject: [PATCH] hotfix --- WEBROOT/index.php | 1 + WEBROOT/services/personal_request_logs.php | 82 ++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 WEBROOT/services/personal_request_logs.php diff --git a/WEBROOT/index.php b/WEBROOT/index.php index 18f63a3..5f096ce 100644 --- a/WEBROOT/index.php +++ b/WEBROOT/index.php @@ -120,6 +120,7 @@ $isAdmin = isset($_SESSION['is_admin']) && $_SESSION['is_admin'] === true; Kein aktiver Service verfügbar.

"; } diff --git a/WEBROOT/services/personal_request_logs.php b/WEBROOT/services/personal_request_logs.php new file mode 100644 index 0000000..4822799 --- /dev/null +++ b/WEBROOT/services/personal_request_logs.php @@ -0,0 +1,82 @@ +getWhitelistedIPs(); +$devips_sql = "'" . implode("','", $devips) . "'"; + +// Filter & Custom Query +$customQuery = $_POST['custom_query'] ?? ''; +$sql = ''; +$useCustom = false; + +// Custom Query Schutz +if ($customQuery) { + $forbidden = ['DELETE', 'UPDATE', 'INSERT', 'DROP', 'ALTER', 'TRUNCATE']; + $upper = strtoupper($customQuery); + + foreach ($forbidden as $bad) { + if (strpos($upper, $bad) !== false) { + echo "Gefährliche Query blockiert ($bad)"; + return; + } + } + + if (stripos(trim($customQuery), "SELECT") !== 0) { + echo "Nur SELECT erlaubt"; + return; + } + + $sql = $customQuery; + $useCustom = true; +} + +// Standard Query (falls kein Custom Query) +if (!$useCustom) { + // Einfache Standard-Query für Logs ohne Dev-IPs + $sql = " + SELECT WEBSITE, REQUEST_URL, FIRST_REQUEST, COUNTER + FROM logs + WHERE CLIENT_IP = '" . (new getSpecificData())->getClientIP() . "' + ORDER BY FIRST_REQUEST DESC + "; +} + +?> + +

📊 Logs

+ +query($sql)) { + while ($row = $erg->fetch_object()) { + $daten[] = $row; + } +} +?> + + +Keine Daten gefunden + + +
+ + + $_): ?> + + + + + + + + + + + +
+
+ + \ No newline at end of file