Instanzname in die Config, Setup-Luecke geschlossen

Instanz:
- $instanz in der externen Config bestimmt INSTANZ, UPLOADS_PATH und
  SESSION_NAME. Der Verzeichnisname waehlt nur noch die Config-Datei aus
  und ist Fallback, solange $instanz fehlt.
- savePDF() schreibt nicht mehr fest nach DOCUMENT_ROOT."kunden", sondern
  in das Verzeichnis, das es auch aufraeumt. .gitkeep wird nicht mehr
  mitgeloescht.

Sicherheit:
- index.php?action=setup war ohne Login auch bei gueltiger Config
  erreichbar. rebuild-settings.php schrieb $_POST ungeprueft als PHP-Code
  in die Config (Codeausfuehrung, sofern die Datei schreibbar war).
- Setup nur noch ohne gueltige Config, firststart.php und
  rebuild-settings.php pruefen das zusaetzlich selbst.
- Config-Werte werden per var_export() maskiert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-17 08:44:33 +02:00
co-authored by Claude Opus 5
parent 70c8600efe
commit 73e64b72ac
6 changed files with 89 additions and 30 deletions
+5
View File
@@ -46,8 +46,13 @@ if($version == -1)
$settings=readsettings();
// Die Ersteinrichtung schreibt die Config neu und kann die Datenbank leeren.
// Sie läuft ohne Login und darf deshalb nur erreichbar sein, solange es
// noch keine gültige Config gibt.
if($settings != "valid")
$action = "setup";
else if($action == "setup")
$action = "";
if($settings == "valid" && $action != "setup")
{