PdfDragButton R131: 60s-Download-Token statt Access-Token, nur DownloadURL
Pentest R131 (LOW-MEDIUM): Der Drag-Button haengte den 15-Min-Access- Token an die URL und schrieb ihn per text/plain + text/uri-list beim Drag mit. Ein Fehl-Drop in ein Text-/Chat-/URL-Feld haette den vollen Access-Token (alle Berechtigungen, 15 Min) als lesbaren Text geleakt. Fix: - fileUrl() akzeptiert jetzt optionalen expliziten Token. - PdfDragButton nutzt den kurzlebigen 60s-Download-Token (authApi.getDownloadToken(), type:download, nur ?token=) statt des Access-Tokens. Modul-weiter Cache mit Dedup, auf mount + hover vorgewaermt (dragstart ist synchron, kann nicht awaiten). - Es wird NUR noch DownloadURL im DataTransfer gesetzt, keine text/plain- oder text/uri-list-Repraesentation -> Fehl-Drop in ein Textfeld erzeugt gar keinen sichtbaren Text. - Klick-Vorschau nutzt ebenfalls bevorzugt den Download-Token. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+13
-4
@@ -110,10 +110,19 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
|
||||
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 (Token als Query, Per-File-
|
||||
Ownership-Check unverändert) – kein neuer Endpoint, keine neue Angriffs-
|
||||
fläche. Ausweitung auf weitere PDF-Stellen (Rechnungen, Vertragsdoks,
|
||||
Datenschutz) folgt bei Bedarf über dieselbe Komponente.
|
||||
- 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 (LOW-MEDIUM, gefixt):** Erste Version hängte den
|
||||
15-Min-Access-Token an und schrieb ihn per `text/plain`/`text/uri-list`
|
||||
beim Drag mit → Fehl-Drop in ein Textfeld hätte den Voll-Token als
|
||||
lesbaren Text geleakt. Fix: (a) kurzlebiger 60s-Download-Token
|
||||
(`authApi.getDownloadToken()`, `type:"download"`, nur `?token=`) statt
|
||||
Access-Token – modul-weiter Cache, auf mount+hover vorgewärmt; (b) NUR
|
||||
noch `DownloadURL` im DataTransfer, keine text/plain-Repräsentation →
|
||||
Fehl-Drop in Text-/Chat-Feld erzeugt gar nichts. Klick-Vorschau nutzt
|
||||
ebenfalls bevorzugt den Download-Token.
|
||||
|
||||
- [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