From 28e78f5d577351d365e2adfcd1ee647c64bec69e Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Thu, 8 Oct 2026 13:54:14 +0000 Subject: [PATCH] dev: Imagick als Server-Voraussetzung, Wiedervorlage der Restpunkte im Sicherheits-Entwicklungsplan Co-Authored-By: Claude Opus 5.5 --- dev/betrieb/deploy-runbook.md | 3 ++- .../ENTWICKLUNGSPLAN-SICHERHEIT-2026-10-07.md | 13 ++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/dev/betrieb/deploy-runbook.md b/dev/betrieb/deploy-runbook.md index bc43b1ba..9d940793 100644 --- a/dev/betrieb/deploy-runbook.md +++ b/dev/betrieb/deploy-runbook.md @@ -10,7 +10,8 @@ ## 1. Server-Voraussetzungen -- PHP 8.4 (FPM) mit Extensions: `pdo_mysql`, `mbstring`, `intl`, `gd` (Bildvarianten), `curl`, `zip` +- PHP 8.4 (FPM) mit Extensions: `pdo_mysql`, `mbstring`, `intl`, `gd` (Bildvarianten), `curl`, `zip`, `exif`, `imagick` + - `imagick` trägt die Herkunftsprüfung (IPTC/XMP) und den KI-Vorab-Check der Bilder. Fehlt es, laufen beide ins Leere, ohne etwas zu blockieren. Live fehlte es bis 08.10.2026. Einrichtung: `sudo apt install php8.4-imagick`, dann `sudo service php8.4-fpm reload` und `php artisan queue:restart`. Prüfen: `php -m | grep -i imagick` und Admin ▸ Reports ▸ Betriebsüberwachung, Zeile „PHP-Erweiterung Imagick“. - MySQL/MariaDB (Prod: `DB_CONNECTION=mysql`; SQLite ist nur Dev) - Node.js (LTS) + npm — nur zum Bauen der Assets (Builds sind **gitignored**, siehe Schritt 3) - Webserver-vHosts für **alle drei Domains** auf dasselbe `public/` (Host-Routing macht die App) diff --git a/dev/sicherheit/ENTWICKLUNGSPLAN-SICHERHEIT-2026-10-07.md b/dev/sicherheit/ENTWICKLUNGSPLAN-SICHERHEIT-2026-10-07.md index 72122556..20e89f1b 100644 --- a/dev/sicherheit/ENTWICKLUNGSPLAN-SICHERHEIT-2026-10-07.md +++ b/dev/sicherheit/ENTWICKLUNGSPLAN-SICHERHEIT-2026-10-07.md @@ -2,7 +2,17 @@ **Grundlage:** [SICHERHEITSAUDIT-2026-10-07.md](SICHERHEITSAUDIT-2026-10-07.md), Repository-Stand `2215826` -**Stand:** 08.10.2026 – Phasen 1–3 und Entscheidung 5 (Passkeys, Pflicht-Zweitfaktor für Admins) live seit `v1.4.0` (07.10.2026), Hotfix `v1.4.1`; Abgleich der Firmenrechte ausgeführt (19.607 → 19.316, Wiederholung stabil). API-Zugang an Buchung, Proxy und HSTS live seit `v1.5.0` (08.10.2026); restliche Phase 4 umgesetzt für `v1.6.0` (Abschnitt 6) +**Stand:** 08.10.2026 – Phasen 1–3 und Entscheidung 5 (Passkeys, Pflicht-Zweitfaktor für Admins) live seit `v1.4.0` (07.10.2026), Hotfix `v1.4.1`; Abgleich der Firmenrechte ausgeführt (19.607 → 19.316, Wiederholung stabil). API-Zugang an Buchung, Proxy und HSTS live seit `v1.5.0` (08.10.2026); restliche Phase 4 live seit `v1.6.0` (08.10.2026, Abschnitt 6) + +**Wiedervorlage — nicht vergessen:** + +| Wann | Was | Wie | +| --- | --- | --- | +| ~~sofort~~ | ✅ 08.10.2026: Imagick auf Live installiert (`php -m` zeigt `imagick`). Vorher liefen Herkunftsprüfung und KI-Vorab-Check der Bilder ins Leere. | Nach `v1.6.1` in der Betriebsüberwachung, Zeile „PHP-Erweiterung Imagick“, gegenprüfen (zeigt den Stand von PHP-FPM). | +| **ab 15.10.2026** | CSP-Meldungen auswerten (Melde-Modus seit `v1.6.0`). | Auf Live `tail -n 200 storage/logs/csp-*.log`; fehlende Quellen in `App\Support\ContentSecurityPolicy` ergänzen, danach über das Scharfschalten entscheiden (`'unsafe-inline'`/`'unsafe-eval'` bleiben bis zu einer Nonce-Lösung). | +| nächstes Release | Übergangs-Fallback der Sperrmarke entfernen. | `SessionRevocation::legacyCachedMark()` und den Test „a revocation from before v1.6.0 …“ streichen. | +| nächstes Release | Liste und Kennzahl „Aktive Sessions“ auf der Sicherheitsseite lesen die Tabelle `sessions`, Live speichert Sessions in Redis — dort immer leer. | Korrigieren oder entfernen; der Knopf „Andere Geräte abmelden“ ist davon unabhängig. | +| bei Gelegenheit | Außerhalb des Audits: eigene MySQL-Benutzer je Projekt auf `global-mysql`, MySQL-Root-Passwort ändern (steht in der Git-Historie), lokalen `APP_KEY` reparieren. | – | **Ausführung:** Befehle direkt im Dev-Container (`php artisan …`, ohne Sail – siehe `.ai/rules/general.md`) @@ -114,6 +124,7 @@ Alles zusammen geht als ein Release raus. Vorgeschlagen ist `v1.4.0`: neue Funkt **Offen geblieben:** - **Phase 4 (Härtung):** inzwischen erledigt, Stand in Abschnitt 6. +- Wiedervorlage der Restpunkte: Tabelle oben unter „Stand“. ## 1. Nachprüfung des Audits