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
+
+
+
+
+
+ $_): ?>
+ | = htmlspecialchars($key) ?> |
+
+
+
+
+
+
+ | = htmlspecialchars($val ?? '') ?> |
+
+
+
+
+
+
+
\ No newline at end of file