camindo CMS für Server-/Netzwerk-Administratoren
Argon2id mit Pepper
Passwort-Hashes nach OWASP, zusätzlich per HMAC mit einem Serverschlüssel gewürzt. Ein Datenbank-Dump allein nützt Angreifern nichts.
Signierte Rechte-Tabellen
Admin-Konten, Gruppen und Rechte tragen HMAC-Signaturen. Wer direkt in die Datenbank schreibt, gibt sich damit keine Rechte.
Schlüsselrotation per CLI
key rotate verschlüsselt alle Daten neu, signiert neu und nimmt Passwörter weich mit. Bricht es ab, geht nichts verloren. Vorher läuft automatisch ein Backup.
Verschlüsselte Felder
AES-GCM mit AAD für E-Mail-Adressen, TOTP-Secrets, Nachrichten und frei definierbare encrypted-Felder. Ein Wert, der in eine andere Zeile kopiert wird, lässt sich dort nicht entschlüsseln.
Zwei-Faktor im Backend
TOTP nach RFC 6238 mit Replay-Sperre, Wiederherstellungscodes und E-Mail-Code. Für Superuser lässt sich TOTP zur Pflicht machen.
Zwei-Faktor im Frontend
Je Kundenbereich einstellbar: aus, optional, bei unbekanntem Gerät oder immer. TOTP mit QR-Code oder E-Mail-Code, SMS lässt sich anbinden.
Brute-Force- und Flooding-Schutz
Gleitende Zeitfenster, Sperre gilt auch für unbekannte Namen, Drosselung pro IP und Adresse. Die Schlüssel werden nur als HMAC gespeichert.
Session-Härtung
Bei jeder Anmeldung eine neue Session-ID, Cookies mit HttpOnly, Secure und SameSite. Ein Passwortwechsel beendet alle anderen Sitzungen.
Geräteverwaltung
Hinweis per E-Mail bei neuem Gerät. Geräte und Sitzungen lassen sich einsehen und beenden, „Abmelden auf allen Geräten“ ist eingebaut.
CSRF dreifach
Token-Pflicht, schreibende Aktionen nur per POST und Origin-Prüfung im Backend. Auch Frontend-Formulare brauchen ein Pflicht-Token.
Content Security Policy
Im Backend immer script-src mit Nonce, ohne unsafe-inline. Im Frontend je Instanz zuschaltbar, mit Report-Modus und Meldungs-Endpunkt.
XSS-Filter auf zwei Wegen
Ein Whitelist-Sanitizer läuft beim Schreiben und beim Lesen. Er entschärft Entity-Tricks, verschachtelte Tags und javascript:-URLs.
Sicherheits-Header
X-Frame-Options, frame-ancestors, nosniff, Referrer-Policy und HSTS als Opt-in. Standardwerte pro Kontext, das Template kann sie überschreiben.
Upload-Härtung
Server-Skripte werden nie angenommen, aktive Inhalte aus dem Frontend immer abgelehnt. Solche Dateien werden mit sandbox, nosniff und attachment ausgeliefert.
ImageMagick-Policy
Eigene policy.xml ist immer aktiv, dazu MIME-basierter Coder-Präfix, Ressourcenlimits und eine Versionswarnung. SVG und PDF gehen nur nach ausdrücklicher Freigabe.
Manipulationssicheres Audit-Log
Jede Änderung mit Vorher/Nachher-Vergleich, im Dateisystem mit HMAC-Kette gespeichert. Die Kette wird täglich automatisch geprüft.
Feingranulare Rechte
Rechte je Modul, Instanz, Sprache, Bereich und Eigentümer. Sie werden in der Oberfläche und auf der Datenebene durchgesetzt.
Prepared Statements
Alle Datenbankzugriffe laufen über gebundene Parameter, SQL wird nie aus Nutzereingaben zusammengesetzt.
Abhängigkeiten im Blick
Täglich composer audit und composer outdated. Sicherheitsmeldungen erscheinen direkt als Warnung auf der Startseite.
Betriebsüberwachung
Die Startseite prüft Cron-Herzschlag, Backups, Schreibrechte, Updates und die Audit-Kette.
Saubere Verzeichnisstruktur
Nur public/ ist Docroot. Schlüssel und Zugangsdaten liegen außerhalb mit Rechten 0600. Aus der Datenbank gelangt nie Code ins Dateisystem.
Passworte über ENV
Passworte sind über Umgebungsvariablen setzbar, anstatt im Config-File, ideal in virtuellen Umgebungen.
Grenzen der Sicherheit
Wer Zugriff auf das Dateisystem erlangt, hat alles in der Hand, inkl. Zugang zur Datenbank und Schlüssel.