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.