Theme-Sicherheit und Release
Dritt-Themes sind Supply-Chain-Input. Validierung und Sandbox der Plattform verringern Risiken, ersetzen aber keine Quell-Review, Lizenzprüfung oder reproduzierbare Releases.
Plattform-Validierungsgrenzen
| Punkt | Limit |
|---|---|
| Komprimierte ZIP-Größe | max. 8 MiB |
| Gesamtgröße entpackt | max. 16 MiB |
| Einzeldateigröße | max. 4 MiB |
| Dateianzahl | max. 300 |
manifest.json | max. 64 KiB, UTF-8-JSON |
| Pfadtiefe | max. 8 Ebenen |
| Einzelpfadlänge | max. 180 Zeichen |
| CSS-Dateien | 1-4 für CSS-Themes |
| Canvas-Höhe | 400-12000 |
Uploads müssen den ZIP-Content-Type verwenden und ein vom Browser berechnetes x-theme-sha256 tragen. Der Worker berechnet das SHA-256 des ganzen Pakets neu und lehnt bei Abweichung ab. x-extension-sha256 ist nur ein vererbter Kompatibilitätsheader alter Theme-Tools; er bedeutet keinen Plugin-Support. Neue Tools senden x-theme-sha256.
Manifest-Validierung
schemamussnie-sla-theme-v1sein.id: 3-49 Kleinbuchstaben, Ziffern oder Bindestriche, beginnt mit einem Buchstaben, bleibt nach Release stabil.versionmuss SemVer sein.typeist festtheme.- CSS-Modus braucht 1-4 gepackte Style-Dateien; Canvas-Modus ein Einstiegs-HTML.
permissionskann nur["status:read"]sein.filesmuss, wenn deklariert, exakt dem ZIP-Inhalt entsprechen.- Pfade müssen NFC-Unicode sein; absolute Pfade, Backslashes,
.., Steuerzeichen und doppelte Pfade werden abgelehnt. - Erlaubt sind
.css,.html,.js,.json, gängige Web-Bildformate und WOFF/WOFF2-Schriften.
Supply Chain und Release
- Saubere Artefakte aus Quellen bauen; nie Dev-Server-Ausgabe ausliefern.
- Autor, Version, Lizenz und Quelladresse klar angeben; offizielle Themes nicht imitieren.
- ZIP-SHA-256 separat veröffentlichen:
shasum -a 256 theme.zip. - Updates behalten dieselbe
idund erhöhen das SemVer; nach einem überschreibenden Upload aktiviert ein Administrator erneut. - Erst auf einem Test-Deployment validieren, dann in Produktion aktivieren.
- Keine lizenzlosen Dateien ohne Erweiterung und kein Markdown in den ZIP; die Lizenz bleibt im Quell-Repository und auf der Release-Seite.
Laufzeit-Isolation
CSS-Themes führen keine Skripte aus. Canvas-Themes laufen in einer Sandbox-Iframe ohne Same-Origin-Rechte; die CSP verbietet direktes Netz, Formulare und Top-Level-Navigation, und Daten kommen nur über das Nachrichtenprotokoll. Plugin-Upload-API und Plugin-Runtime sind nicht offen.
Administratoren sollten nur Themes aus vertrauenswürdigen Quellen aktivieren. Plattform-Validierung stoppt versehentliche Uploads und häufige Umgehungen, nicht einen böswilligen Autor, der ein Theme absichtlich vergiftet; Quell-Review und Lizenzprüfung bleiben Verantwortung des Administrators.