Sicherheit: AJAX-Endpunkte und Statistik nur mit Anmeldung

Keiner der AJAX-Endpunkte hat einen Login geprueft. Ohne Anmeldung liessen
sich Kunden, Adressen und Rechnungen durchsuchen, und ajax/autosave.php
setzt $_POST ungeprueft in SQL (SQL-Injection ohne Login).

- incs/connectmysql.php und ajax/auto/connectmysql.php, die alle
  AJAX-Endpunkte laden, antworten ohne gueltige Session mit 403
- stats.php verlangt eine Anmeldung
- db-backup.php und clean_db.php laufen nur noch per Kommandozeile;
  ueber den Webserver konnte jeder einen Datenbank-Dump anstossen

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-17 10:30:30 +02:00
co-authored by Claude Opus 5
parent 7dd6580bcc
commit c59e7fb393
5 changed files with 26 additions and 0 deletions
+6
View File
@@ -2,6 +2,12 @@
require_once("../incs/constants.php");
session_name(SESSION_NAME);
session_start();
// Alle AJAX-Endpunkte laden diese Datei: ohne Anmeldung gibt es keine Daten.
if(($_SESSION["login"] ?? "") !== "valid")
{
http_response_code(403);
exit("Nicht angemeldet.");
}
require_once("../incs/settings.php");
$settings=readsettings();
if($settings == "valid")