F07 Playwright-Service sicher, begrenzt und instanztreu betreiben
Frühere Version vom 2026-07-16T18:39:13.335375+02:00 · zur aktuellen Fassung
Playwright-Service sicher, begrenzt und instanztreu betreiben
Finding: F07 Priorität: P1 Status: OFFEN Stand: 2026-07-16
Problembeschreibung
- server.js startet Chromium je Aktion (server.js:9/59), nicht eine bestehende Instanz.
- ignoreHTTPSErrors=true schwächt TLS (server.js:67).
- Leeres WETELL_HEADLESS_SECRET erlaubt jeden POST (server.js:401).
- Body ist unlimitiert (server.js:36), URLs frei steuerbar, Login-Erfolg nur Heuristik.
Ziel
Ein kontrollierter Browser wird wiederverwendet; Dienst ist zwingend authentisiert, TLS-validierend und begrenzt.
Aufgabe
- Browser beim Start, Context pro Job.
- Pflichtsecret oder Unix-Socket/mTLS plus Allowlist.
- Body-/Zeit-/Queue-/Speicherlimits und Readiness implementieren.
Scope
- In Scope: alle unter Code Blast genannten Komponenten, Daten, Verträge und Tests.
- Out of Scope: neue Features und produktive externe Mutation ohne separate Freigabe.
Harte Spezifikation
- MUST: kein launch im Handler.
- MUST: Secret nie leer/geloggt.
- MUST: TLS-Fehler nicht ignoriert.
- MUST: Body max 64 KiB, Limits/Cleanup.
Harte Quality Gateways
- 100 Requests nutzen eine Browser-PID, 0 offene Contexts.
- Kein/falsches Secret immer 401/403.
- Fremde URL/TLS-Fehler blockiert.
- Überlast 429/503; Node-Tests grün.
- Global: PHPStan Level 8 und PHPUnit liefern 0 Fehler; kein Ignore oder Baseline.
Code Blast
- Direkt: server.js, package, README, Service-Unit, Headless-PHP-Adapter.
- Betrieb: Browser-PID, Speicher, Neustart.
Code-Impact-Analyse
- Weniger Ressourcen/Startlatenz.
- Erfordert Browser-Recovery und Servicevertrag.
Risikoanalyse
| Risiko | Eintritt | Schaden | |---|---|---| | Unauthentisierter SSRF-Proxy | mittel | kritisch | | TLS/DoS/Sessionleck | hoch | hoch |
Strategie zur Risikonullierung
- Prevent: Auth/Loopback/TLS/Allowlist.
- Detect: PID/Context/Queue.
- Contain: Isolation/Limits.
- Recover: Browserneustart.
Abschlussnachweis
Erledigt erst, wenn alle MUST-Spezifikationen implementiert, alle Gateways mit unveränderlicher Evidenz grün und Restrisiken technisch ausgeschlossen oder ausdrücklich fachlich akzeptiert sind.