fix(leiste): mit Cross-Origin-Resource-Policy ausliefern
Apps, die COEP „require-corp" setzen — alles mit WASM oder SharedArrayBuffer, etwa BentoPDF — lehnen jede fremde Datei ab, die sich nicht ausdruecklich zur Einbettung bekennt. Genau das ist der Zweck der Leiste, also sagt sie es jetzt. Die Alternative waere gewesen, im Proxy das COEP der App zu entfernen. Das haette ihr die Faehigkeiten genommen, fuer die sie es setzt. Gefunden beim Einsetzen in BentoPDF hinter einem nginx. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
05e56f4cd2
commit
5dbadf212f
2 files changed
+29
No files matched your search
@@ -221,6 +221,29 @@ CSP dieser App; viele fertige Werkzeuge brauchen `unsafe-inline` ohnehin für
|
||||
sich selbst, aber wissen sollte man es. (Auflösbar, indem die Leiste ihre Stile
|
||||
als eigene Datei ausliefert — steht in [IDEAS.md](IDEAS.md).)
|
||||
|
||||
**Apps mit COEP** (alles mit WASM oder SharedArrayBuffer — BentoPDF etwa)
|
||||
lehnen fremde Dateien ab, die sich nicht zur Einbettung bekennen. HoneyOS
|
||||
liefert die Leiste deshalb mit `Cross-Origin-Resource-Policy: cross-origin`
|
||||
aus. Ohne das erscheint dort keine Leiste, und in der Konsole steht nur
|
||||
`ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep`.
|
||||
Das COEP der App bleibt dabei unangetastet — ihre eigenen Fähigkeiten also auch.
|
||||
|
||||
**Nur Pangolin davor?** Traefik kann Antwortkörper nicht von sich aus ändern;
|
||||
dafür bräuchte es ein Plugin. Der kürzere Weg ist ein kleiner nginx *zwischen*
|
||||
Pangolin und der App, der nichts tut außer einsetzen:
|
||||
|
||||
```yaml
|
||||
leiste:
|
||||
image: nginx:alpine
|
||||
restart: unless-stopped
|
||||
volumes: [./leiste.conf:/etc/nginx/conf.d/default.conf:ro]
|
||||
# Pangolin zeigt jetzt hierher statt direkt auf die App.
|
||||
```
|
||||
|
||||
Geprüft mit BentoPDF: Es schickt keine CSP, also genügen `proxy_pass`,
|
||||
`Accept-Encoding ""` und die `sub_filter`-Zeile — die CSP-Zeilen oben braucht
|
||||
nur, wessen App selbst eine schickt.
|
||||
|
||||
**Was dabei zu erwarten ist:**
|
||||
|
||||
- **Das Layout der fremden App kennt die Leiste nicht.** Rechnet sie mit
|
||||
|
||||
Reference in new issue
Block a user