CDP 35948520/Checkliste HTML5: 19 Web App Security Checks #33
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Quelle
samples/CDP/checklists/html5.xlsxCheckliste (19 Checks)
Phase: Build
Configuration
⚪
window.postMessagewird nicht verwendet.✅ Next.js Default = same-origin; keine öffentlichen CORS-Endpunkte (
next.config.ts).⚪ Keine WebSockets — Realtime-Kommunikation via SSE + Redis.
✅ SSE-Endpoints mit Auth-Check (
apps/web/src/app/api/sse/timeline/route.ts:20).✅ localStorage nur für UI-Präferenzen (
useViewPrefs,useTheme,useColumnConfig) — keine Credentials/Session-Daten.⚪ Keine IndexedDB / WebSQL im Einsatz.
⚪ Geolocation API wird nicht verwendet.
🟡 Generic Error-Messages + MFA-Option vorhanden. TODO: Anti-Phishing explizit in Security-Architecture dokumentieren.
⚪ Keine Drittanbieter-iframes (
sandbox-Attribut nicht relevant).⚪ Kein PWA-Offline-Support / Service Worker aktiv.
✅ Auth-Middleware schützt alle Routen (
apps/web/src/middleware.ts).✅ Auth.js Credentials-Provider, HTTPS, HttpOnly-Cookies.
✅ Auth.js Callbacks + Zod-Input-Validation.
🟡 Kein JWT im Client — stattdessen server-side Sessions (HttpOnly-Cookie,
strategy: 'jwt'intern für Edge, aber nicht Client-sichtbar). Sicherer als Client-JWT.✅ Zod-Schemas definieren Struktur aller Auth-Payloads.
✅ Alle tRPC-Procedures mit Zod-Input + typed Output.
✅ Session maxAge=8h, updateAge=30min (
auth.config.ts:13).✅ Siehe Auth-Exchange + Input-Validation.
✅ HTTPS (TLS1.2+) + HttpOnly/Secure/SameSite-Strict Cookies + CSP-Header.
Review-Ergebnis
Detail-Analyse aller 19 Checks aus
samples/CDP/checklists/html5.xlsxgegen CapaKraken-Code unddocs/acn-security-compliance-status.md.🟡 Partials — Follow-up sinnvoll
strategy: 'jwt'intern für Edge, aber nicht Client-sichtbar). Sicherer als Client-JWT.Empfehlung:
Keine echten Gaps. 2 Partials als Follow-ups tracken, Ticket kann dann geschlossen werden.
Abschluss
11 ✅ OK + 6 ⚪ N/A (nicht genutzte HTML5-Features) + 2 🟡 Partial:
Keine echten Gaps. Ticket wird geschlossen, verbleibende Punkte laufen als Doku-Follow-up.