SwissKnife Docs
SwissKnife betreiben

Sicherheit

Die tatsächliche Sicherheitsgrenze von SwissKnife, HTTP-Header und Meldeweg.

SwissKnife ist eine statische Anwendung ohne Backend, Benutzerkonten oder API-Schlüssel. Mediendateien verlassen den Browser-Tab nie. Zur relevanten Angriffsfläche gehören die Abhängigkeitskette, das Docker-Image, GitHub-Actions-Workflows, HTTP-Header und die Browser-Laufzeit.

Header des Containers

nginx.conf sendet unter anderem:

  • Cross-Origin-Opener-Policy: same-origin
  • Cross-Origin-Embedder-Policy: require-corp
  • Cross-Origin-Resource-Policy: same-origin
  • X-Content-Type-Options: nosniff
  • Referrer-Policy: no-referrer
  • X-Frame-Options: DENY
  • Permissions-Policy: camera=(), microphone=(), geolocation=()
  • eine auf 'self' beschränkte CSP, wobei script-src zusätzlich 'wasm-unsafe-eval' und blob: sowie img-src / media-src / connect-src / worker-src jeweils blob: erlauben

Der Nginx-Prozess läuft nicht als root.

Ohne COOP/COEP ist SharedArrayBuffer nicht verfügbar und FFmpeg WASM kann nicht geladen werden. Siehe Reverse Proxy.

Header der Vercel-Demo

Die vercel.json des Produkts setzt dieselben Header-Gruppen für WASM und zusätzlich X-Robots-Tag: noindex, nofollow.

Datenschutz

Benutzerdateien werden nie hochgeladen. Der FFmpeg-Core wird beim ersten Medienvorgang vom eigenen Ursprung der Anwendung geladen, nicht von unpkg. Bildkonvertierungen über Canvas lösen diesen Download nicht aus.

Empfehlungen

  • nutze einen HTTPS-Reverse-Proxy, wenn du die Anwendung außerhalb deines LAN veröffentlichst;
  • präsentiere keine echte Instanz als „offizielle Demo“: Nutze demo.swissknife.lucas-homelab.fr;
  • melde Schwachstellen gemäß der Sicherheitsrichtlinie, nicht in einem öffentlichen Issue, wenn sie die Garantie „keine Uploads“ schwächen.

SwissKnife hat weder JWTs noch Sitzungscookies oder geheime Umgebungsvariablen, die rotiert werden müssten.

Auf dieser Seite