Zum Inhalt springen
FULLTime eCommerce

Hochgeladene Dateien schützen – private Ablage & signierte Links

Hinweis: Verfügbar ab Version 2.5.0

Bis Version 2.4.x lagen hochgeladene Kundendateien unter public/uploads/ und wurden vom Webserver direkt ausgeliefert – ohne Prüfung. Wer den Pfad kannte, konnte die Datei abrufen. Und der Pfad steht in der Bestellbestätigung des Kunden, in der internen Benachrichtigungs-E-Mail und in der Administration.

Bei Druckvorlagen ist das meist unkritisch. Sobald Ihre Kunden aber Ausweiskopien, Atteste, Rezepte oder Konstruktionszeichnungen hochladen, ist es das nicht mehr.

Ab 2.5.0 können Sie die Dateien außerhalb des öffentlichen Verzeichnisses ablegen lassen. Sie werden dann nur noch über einen signierten Link ausgeliefert, der seine Berechtigung selbst mitbringt und nach einer von Ihnen festgelegten Frist abläuft.

Die drei Einstellungen

Sie finden sie in den Plugin-Einstellungen unter Datei-Downloads.

EinstellungStandardWirkung
Uploads privat ablegen und signierte Download-Links verwendenbei Update: aus, bei Neuinstallation: anLegt fest, wo neue Uploads gespeichert werden
Gültigkeit der Download-Links in Tagen90Wie lange ein Link in einer bereits verschickten E-Mail funktioniert. 0 = unbegrenzt
Alte öffentliche Pfade weiter ausliefernanHält Links funktionsfähig, die vor der Umstellung verschickt wurden

Warum die Gültigkeit selten stört

Die Frist betrifft ausschließlich Links in bereits verschickten E-Mails. Im Kundenkonto, auf der Bestellabschluss-Seite und in der Administration wird der Link bei jedem Aufruf neu erzeugt und ist damit immer gültig.

Betroffen sind also nur zwei Fälle: Gastbesteller, die ihre alte Bestellbestätigung hervorholen, und Mitarbeiter, die eine archivierte interne Mail öffnen – wobei Letztere die Datei auch in der Administration finden.

90 Tage decken den 14-tägigen Widerruf plus die übliche Reklamationszeit mit Luft ab. Wenn Sie mit langlaufenden Prozessen arbeiten – Sonderanfertigungen, Bauzeichnungen – setzen Sie die Frist hoch oder auf 0.

Die Umstellung Schritt für Schritt

Jeder Schritt lässt sich einzeln zurücknehmen.

1. Update einspielen

Es ändert sich zunächst nichts. Bei einem Update bleibt die private Ablage ausgeschaltet, damit Ihre bestehenden E-Mail-Vorlagen unverändert weiterarbeiten.

2. E-Mail-Vorlagen umstellen

Ersetzen Sie in Ihren Vorlagen den selbst zusammengebauten Pfad durch den Link, den das Plugin mitliefert:

Vorher

<a href="{{ url('frontend.home.page') }}uploads/final/{{ upload.qquuid }}/{{ upload.fileName }}">{{ upload.fileName }}</a>

Nachher

<a href="{{ upload.downloadUrl }}">{{ upload.fileName }}</a>

Das funktioniert sofort und ändert das Verhalten noch nicht: Solange die private Ablage aus ist, liefert downloadUrl genau den öffentlichen Pfad, den Ihre Vorlage vorher selbst gebaut hat.

Betroffen sind beide Vorlagen: die Bestellbestätigung an den Kunden und die interne E-Mail an Ihr Team.

Warum das der wichtigste Schritt ist: Mit downloadUrl bauen Ihre Vorlagen den Pfad nie wieder selbst zusammen. Künftige Änderungen an der Ablage bleiben damit für Sie unsichtbar – genau das Problem, das diese Umstellung gerade verursacht, entsteht kein zweites Mal.

3. Private Ablage einschalten

Ab jetzt landen neue Uploads außerhalb des öffentlichen Verzeichnisses und werden nur über signierte Links ausgeliefert. Bestehende Dateien bleiben liegen, wo sie sind, und bleiben erreichbar.

4. Bestehende Dateien umziehen

bin/console futi:uploads:migrate --dry-run

Der Probelauf zeigt, wie viele Dateien betroffen sind und wie viel Speicher sie belegen, ohne etwas zu verändern. Sind Sie einverstanden:

bin/console futi:uploads:migrate

Der Befehl arbeitet in Blöcken, überspringt bereits umgezogene Dateien und lässt sich jederzeit abbrechen und erneut starten.

Solange noch Dateien im öffentlichen Verzeichnis liegen, weist Sie ein Hinweis in den Plugin-Einstellungen darauf hin.

Die Einstellung steuert nur, wo neue Uploads gespeichert werden. Ausgeliefert wird immer nach dem tatsächlichen Speicherort der jeweiligen Datei:

  • Datei liegt privat → signierter Link, unabhängig von der Einstellung
  • Datei liegt öffentlich → öffentlicher Pfad

Deshalb können Sie die Einstellung ein- und wieder ausschalten, ohne dass ein einziger Link ins Leere zeigt – auch nicht nach einer Migration.

Voraussetzung

Die private Ablage nutzt das private Dateisystem von Shopware. In der Standardkonfiguration ist das ein lokales Verzeichnis (files/) außerhalb des Dokumentenstamms – dort ist nichts zu tun.

Haben Sie das private Dateisystem auf einen entfernten Speicher umgestellt (S3 oder vergleichbar), lassen Sie die Einstellung bitte ausgeschaltet.

Kunden sehen dann keine Fehlerseite, sondern einen Hinweis mit dem Weg zur Bestellübersicht im Kundenkonto. Von dort ist die Datei jederzeit erreichbar, weil der Link dort bei jedem Aufruf neu erzeugt wird.

War diese Seite hilfreich?

Support

Gemietete Plugins (Shopware Store)

Für Support zu im Shopware Store gemieteten Plugins erstellen Sie bitte ein Support-Ticket in Ihrem Shopware-Konto.

Shopware-Ticket erstellen

Allgemeine Anfragen

Für allgemeine Fragen oder Kauflizenzen erreichen Sie uns per E-Mail.

E-Mail senden
Hochgeladene Dateien schützen – private Ablage & signierte Links | FULLTime eCommerce