Technische Dokumentation
Dieser Abschnitt beschreibt Architektur, Projektdateien, Inhaltsauflösung, Sicherheitsmechanismen und lokale Bibliotheken.
Klein und schnell
Das komplette Installationspaket ist als ZIP nur rund 123 KB gross und benötigt entpackt lediglich etwa 336 KB Speicherplatz. Damit bleibt SB30 aussergewöhnlich kompakt.
SB30 braucht weder Datenbank noch grosses Framework und auch keinen Build-Prozess. Seiteninhalte werden direkt aus einfachen Dateien gelesen. Die kurzen Ausführungswege und die lokal eingebundenen Bibliotheken sorgen deshalb für schnelle Seitenaufrufe mit wenig technischem Ballast.
Architektur und Dateien
index.php: Request, Menü, Layout und Editor-Einbindungsettings.php: Konfigurationstyles.css: responsives Layoutapp.js: Navigation, Editor und Bildbetrachterupload-image.php: geschützter JSON-Uploadincludes/site.php: Pfade und Inhalteincludes/admin.php: Anmeldung, CSRF und Speichernincludes/gallery.php: Bildskalierung und Galerieausgabeseiten/: Inhaltsbaum;bilder/: Uploads;assets/vendor/: lokale Bibliotheken
Inhaltsauflösung
Geladen wird die erste vorhandene Datei in der Reihenfolge index.php, index.html, inhalt.html, inhalt.php. Nur HTML-Dateien sind visuell bearbeitbar. Gewählte Pfade werden normalisiert, mit realpath() geprüft und müssen innerhalb von seiten/ liegen; .. wird abgelehnt.
Sicherheit und Speichern
Anmeldung und Bearbeitungsmodus liegen in der PHP-Session. Zustandsändernde Formulare nutzen CSRF-Tokens. Speichern ist nur authentifiziert, im Bearbeitungsmodus und auf Seiten ohne Unterordner möglich. Der HTML-Cleaner ist kein vollständiger Sanitizer; Bearbeitung darf nur vertrauenswürdigen Personen offenstehen.
Upload
Der Upload akzeptiert nur POST im aktiven Bearbeitungsmodus und prüft MIME-Typen mit Fileinfo. Eine eigene Dateigrössenlimite gibt es nicht; PHP- und Webserver-Limits gelten.
Galerie
Galerien erzeugen mit GD proportionale Varianten, überspringen vorhandene Dateien und sortieren natürlich nach Dateinamen.
Lokale Bibliotheken
Alle Bibliotheken liegen lokal unter assets/vendor/. Verwendet werden jQuery 3.7.1, Trumbowyg 2.31.0 und jquery-resizable-dom 0.35.0.
Trumbowyg wird durch die Erweiterungen Resizimg, Table, Font Family, Font Size, Colors, Special Chars, Emoji und Cleanpaste ergänzt. Die Upload-Funktion ist oben als eigener technischer Bereich beschrieben.