Aus #113, Entscheidung 6: für v1 hingenommen, hier festgehalten.
Befund:
Ein Plugin ist JavaScript im selben Kontext wie der Editor. Es kann alles, was der Editor kann: die PHP-API aufrufen (Projekte, Texturen, Sounds lesen, überschreiben, löschen), das DOM und den gesamten Zustand im Speicher anfassen, beliebige Requests an fremde Server schicken.
Die api-Grenze aus #113 ist eine Bequemlichkeit, keine Schutzgrenze.
Eine iframe-Sandbox verträgt sich nicht mit dem einen WebGL-Canvas (Pixi darf nur einmal existieren).
Tragbar solange nur, wer Dateien auf den Server legen kann, Plugins installiert. Mit dem Upload (#116) ändert sich das: wer hochladen darf, darf faktisch alles.
Zu klären, bevor der Upload kommt:
Wer darf hochladen und aktivieren (nur Admins)?
Deutlicher Hinweis beim Aktivieren („läuft mit vollen Rechten“).
Varianten mit echter Grenze prüfen und bewerten, z. B. Plugin im Web Worker mit Message-API, UI nur deklarativ beschrieben und vom Editor gezeichnet – samt dem, was das an der API aus #113 ändern würde.
Serverseitig: Auslieferung nur aus data/plugins/, Dateinamen prüfen (in #113 schon Pflicht).
Aus #113, Entscheidung 6: für v1 hingenommen, hier festgehalten.
**Befund:**
- Ein Plugin ist JavaScript im selben Kontext wie der Editor. Es kann alles, was der Editor kann: die PHP-API aufrufen (Projekte, Texturen, Sounds lesen, überschreiben, löschen), das DOM und den gesamten Zustand im Speicher anfassen, beliebige Requests an fremde Server schicken.
- Die `api`-Grenze aus #113 ist eine Bequemlichkeit, **keine Schutzgrenze**.
- Eine iframe-Sandbox verträgt sich nicht mit dem einen WebGL-Canvas (Pixi darf nur einmal existieren).
- Tragbar solange nur, wer Dateien auf den Server legen kann, Plugins installiert. Mit dem Upload (#116) ändert sich das: wer hochladen darf, darf faktisch alles.
**Zu klären, bevor der Upload kommt:**
- Wer darf hochladen und aktivieren (nur Admins)?
- Deutlicher Hinweis beim Aktivieren („läuft mit vollen Rechten“).
- Varianten mit echter Grenze prüfen und bewerten, z. B. Plugin im Web Worker mit Message-API, UI nur deklarativ beschrieben und vom Editor gezeichnet – samt dem, was das an der API aus #113 ändern würde.
- Serverseitig: Auslieferung nur aus `data/plugins/`, Dateinamen prüfen (in #113 schon Pflicht).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Aus #113, Entscheidung 6: für v1 hingenommen, hier festgehalten.
Befund:
api-Grenze aus #113 ist eine Bequemlichkeit, keine Schutzgrenze.Zu klären, bevor der Upload kommt:
data/plugins/, Dateinamen prüfen (in #113 schon Pflicht).