Sicherheit

Sichere Bludit-Plugins entwickeln: CSRF, Rollen, XSS, Uploads, ZIP-Slip und Updates

Eine Sicherheitscheckliste speziell für Bludit-Erweiterungen und Adminwerkzeuge.

Ein Bludit-Plugin läuft im selben PHP-Prozess wie das CMS. Deshalb ist ein Plugin keine „Sandbox“. Wer Uploads, Formulare oder externe Daten verarbeitet, muss dieselben Sicherheitsregeln beachten wie bei jeder anderen PHP-Anwendung.

Eingaben und Ausgaben getrennt betrachten

  • Eingaben validieren: Ist die Zahl wirklich eine Zahl? Ist der Dateityp erlaubt? Ist die URL syntaktisch gültig?
  • Daten normalisieren: trimmen, Slugs auf erlaubte Zeichen begrenzen, Pfade kanonisieren.
  • Beim HTML-Ausgeben escapen: z. B. htmlspecialchars(..., ENT_QUOTES, 'UTF-8').
  • SQL-Injection spielt bei Bludits Flat-File-Core kaum eine Rolle, aber XSS, Dateipfade, Uploads, CSRF und Rechteprüfungen bleiben voll relevant.

CSRF bei eigenen Adminformularen

global $security;
$token = $security->getTokenCSRF();
// als hidden field: tokenCSRF

Rollen prüfen

checkRole(array('admin')); // für administrative Werkzeuge

Dateiuploads

Vertraue weder Dateiname noch MIME-Angabe aus dem Browser. Setze Größenlimits, erlaube nur benötigte Formate und lagere temporäre Verarbeitung in einen kontrollierten Workspace aus. Bei ZIP-Archiven müssen Pfade validiert werden; ein Archiv darf niemals mit ../ aus seinem Ziel ausbrechen.

Keine Secrets in ZIP-Projekten

Wenn du eine vollständige Installation als Supportpaket weitergibst, können Benutzer-Datenbanken, Tokens, Maildaten oder API-Schlüssel enthalten sein. Erzeuge für Weitergabe eine bereinigte Kopie oder ersetze Geheimnisse bewusst.

Updates

Ein eigenes Plugin sollte eine Versionsnummer, Release-Datum und kompatible Bludit-Version in metadata.json führen. Vor einem Update: Backup, Changelog prüfen, Testinstallation oder Staging nutzen, erst danach live ersetzen.

Quellen und weiterführende Dokumentation