PdfDragButton komplett entfernt (Plattformgrenze)
Test-Ergebnis: Browser kann einer fremden Desktop-App keine echte lokale Datei zum Anhaengen uebergeben. URL-Drag -> Thunderbird nur Link (0 Bytes, Fehler beim Senden); Datei-Drop in den Text -> nur Dateiname als Text; auf die Anhang-Leiste (Thunderbird/Linux) -> ebenfalls kein echter Anhang; Webmail -> gar nicht moeglich. Entscheidung: Feature raus. Download- und Anzeigen-Button decken den Bedarf zuverlaessig ab. PdfDragButton geloescht, fileUrl()-Token-Param zurueckgebaut. Pentest R131 damit gegenstandslos (kein Drag mehr). Die separaten Copy-Buttons fuer IBAN + Ausweisnummer im Vertrags- formular bleiben erhalten. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+16
-30
@@ -97,36 +97,22 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
|
||||
|
||||
## ✅ Erledigt
|
||||
|
||||
- [x] **🖱️ PDF-Drag-and-Drop aus Bankkarte/Ausweis heraus** (2026-07-30)
|
||||
- Neues wiederverwendbares `PdfDragButton`: ziehbares „📄 PDF ziehen"-
|
||||
Element, mit dem der hinterlegte Scan direkt aus dem Browser in ein
|
||||
Mail-Fenster (Anhang) oder den Datei-Explorer gezogen werden kann
|
||||
(Chromium-`DownloadURL`, Format `<mime>:<name>:<absolute-url>`).
|
||||
- **Technik-Grenze bewusst:** „PDF per Strg+V als DATEI einfügen" geht im
|
||||
Browser NICHT (Web-Clipboard darf keine OS-Datei-Zwischenablage/CF_HDROP
|
||||
befüllen) → Drag-and-Drop statt Clipboard. `DownloadURL` nur Chrome/Edge,
|
||||
nicht Firefox (dort Klick-Fallback: Datei im Tab öffnen).
|
||||
- Eingebaut an: Vertrag-Neu/Bearbeiten (`ContractForm`, neben IBAN-/
|
||||
Ausweisnummer-Copy-Button), Vertragsansicht (`ContractDetail`, Bankkarte-
|
||||
+ Ausweis-Card), Kundenakte-Tabs Bankkarten + Ausweise (`CustomerDetail`,
|
||||
neben Anzeigen/Download). Erscheint nur bei vorhandenem `documentPath`.
|
||||
- Nutzt bestehende `fileUrl()`-Download-URL (Per-File-Ownership-Check
|
||||
unverändert) – kein neuer Endpoint, keine neue Angriffsfläche. Ausweitung
|
||||
auf weitere PDF-Stellen (Rechnungen, Vertragsdoks, Datenschutz) folgt bei
|
||||
Bedarf über dieselbe Komponente.
|
||||
- **Nachtrag Pentest R131 + Funktions-Iteration → Blob-Ansatz (final):**
|
||||
Zwischenstände (Access-Token → 60s-Download-Token, Text-Formate raus/rein)
|
||||
hatten entweder ein Token-Leak-Risiko ODER hängten nur einen LINK an
|
||||
(Thunderbird lud die URL erst beim Senden → 0 Bytes / Fehler, Token
|
||||
abgelaufen). Endstand: Datei wird VORAB per Bearer-Auth als **Blob**
|
||||
geladen und beim Drag als echter Datei-Inhalt übergeben
|
||||
(`dataTransfer.items.add(File)` + `DownloadURL` mit lokaler `blob:`-URL).
|
||||
→ Es wird der DATEI-INHALT übertragen, kein Link. Sicherheit R131 damit
|
||||
vollständig erledigt: im Drag steckt WEDER Server-URL NOCH Token, ein
|
||||
Fehl-Drop kann nichts mehr leaken. Blob wird beim Mount vorgeladen
|
||||
(Ladezustand „lädt …", `/files/download` schreibt kein Audit-Log, daher
|
||||
kein Audit-Spam). Zuverlässiges Datei-Drop v.a. in Chromium; Ziele ohne
|
||||
File-Annahme → Klick-Fallback (Tab öffnen, manuell anhängen).
|
||||
- [~] **🖱️ PDF-Drag-and-Drop aus Bankkarte/Ausweis — VERWORFEN** (2026-07-30)
|
||||
- Idee: hinterlegten Scan per Drag direkt in Mail-Anhang/Datei-Explorer
|
||||
ziehen. Über mehrere Iterationen durchgespielt (Chromium-`DownloadURL`
|
||||
mit Access-Token → 60s-Download-Token → Blob/`items.add(File)`).
|
||||
- **Ergebnis: harte Plattformgrenze.** Ein Browser kann einer fremden
|
||||
Desktop-App keine echte lokale Datei zum Anhängen übergeben. URL-Drag →
|
||||
Thunderbird speichert nur einen Link (0 Bytes, lädt beim Senden nach →
|
||||
Fehler). Datei-Drop in den Nachrichtentext → nur Dateiname als Text.
|
||||
Auf die Anhang-Leiste gezogen (Thunderbird/Linux/Chromium) → ebenfalls
|
||||
kein echter Anhang. Webmail im Browser → gar keine Datei möglich.
|
||||
- **Entscheidung (User):** komplett wieder entfernt. Download- + Anzeigen-
|
||||
Button decken den Bedarf zuverlässig ab. Komponente `PdfDragButton`
|
||||
gelöscht, `fileUrl()`-Token-Param zurückgebaut. Pentest R131 damit
|
||||
gegenstandslos (kein Drag-Feature mehr).
|
||||
- **Bleibt erhalten:** die separaten Copy-Buttons für IBAN (Bankkarte) und
|
||||
Ausweisnummer im Vertragsformular (s.u.).
|
||||
|
||||
- [x] **📋 Vertragsformular: Copy-Buttons für Bankkarte (IBAN) + Ausweis** (2026-07-30)
|
||||
- In „Kundendaten verknüpfen" je ein Kopieren-Button neben dem Label,
|
||||
|
||||
Reference in New Issue
Block a user