Seit dem BUG-81-3-Fix läuft PDF-Parsing über pdfjs-dist im App-Origin
statt in einer Browser-Sandbox. Sicherheitsniveau hängt damit an der
Code-Qualität der Dependency - Update-Pflicht bei Security-Releases
dokumentiert, nicht erst beim nächsten großen Dependency-Sweep.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WapWkrQusDuBMhaN8WyuXB
Chromium/Brave zeigte leeren PDF-Bereich (PDFium/MimeHandlerView
verweigert Rendering in sandbox="allow-scripts" ohne allow-same-origin,
Firefox war nicht betroffen). allow-same-origin nachzurüsten kam nicht
infrage: Blob-URLs erben den App-Origin, die Kombination hätte die
Sandbox faktisch aufgehoben (PROJ-61-Kontext).
Neu: PdfCanvasPreview.tsx rendert PDF via pdf.js selbst nach <canvas>,
kein iframe/eingebettetes Dokument mehr nötig. Parsing im Worker, kein
PDF-eigenes JavaScript, kein Text-/Annotationslayer im DOM. Seitenlimit
30, eigener Fehlerzweig für passwortgeschützte/beschädigte PDFs.
Neue Dependency pdfjs-dist@6.2.108 - Restrisiko: PDF-Parsing läuft
jetzt im App-Origin statt im Browser-Viewer-Prozess.
Noch nicht im Browser verifiziert, Status bleibt In Review.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WapWkrQusDuBMhaN8WyuXB
- AC1-Text auf tatsächlichen Vorschau-Button-Ansatz umformuliert
- resolveMimeType(): Server-content_type nur als Hinweis bei fehlender
Dateiendung, kann vorhandene Endung nicht überstimmen; Rendering bleibt
strikt auf clientseitige MIME-Whitelist beschränkt (Security-Modell
unverändert, kein SVG/HTML)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WapWkrQusDuBMhaN8WyuXB
- PROJ-80: hartkodierte Farben in ModulesTab/TenantsTab/TenantLDAPTab durch
Theme-Tokens ersetzt, Mail-HTML-Container bewusst hell isoliert, Print
im Dark Mode auf lesbare (nicht farbidentische) Ausgabe umgestellt
- PROJ-81: neuer AttachmentPreviewDialog für PDF/Bild-Anhänge in /mail/[id],
MIME-Whitelist ohne SVG, sandboxed iframe ohne allow-same-origin,
Auto-Retry-Schleife bei Fehlern behoben
- PROJ-82 angelegt: Print-Farbparität als Folge-Ticket (BUG-80-1-Rest)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WapWkrQusDuBMhaN8WyuXB