Digitale Downloads in WooCommerce absichern
Verkaufen Sie ein E-Book, eine PDF-Datei, Musik oder Software über WooCommerce? Dann möchten Sie, dass nur zahlende Kunden die Datei abrufen können. WooCommerce regelt das mit einem geschützten Download-Link, aber das funktioniert nur dann richtig, wenn die Downloadmethode sicher ist und der Ordner mit den Dateien verschlossen ist. Hier erfahren Sie, wie es funktioniert, was Sie einstellen und wie Sie überprüfen, dass ein direkter Link nicht funktioniert.
Wie ein Download in WooCommerce funktioniert
Aktivieren Sie bei einem Produkt Downloadbar (Downloadable) und laden Sie die Datei hoch. WooCommerce speichert sie im Ordner wp-content/uploads/woocommerce_uploads/. Standardmäßig wird eine zufällige Zeichenfolge an den Dateinamen angehängt, sodass der Name schwer zu erraten ist. Der Kunde erhält nie diese Adresse, sondern einen Link zu Ihrem Shop. Bei jedem Klick prüft WooCommerce, ob der Download zu einer bezahlten Bestellung gehört und ob das Limit und das Ablaufdatum noch nicht erreicht sind. Erst dann erhält der Kunde die Datei.
Handelt es sich nicht um einen physischen Artikel, aktivieren Sie zusätzlich Virtuell (Virtual). Dann berechnet WooCommerce keine Versandkosten.
Wählen Sie eine sichere Downloadmethode
Gehen Sie zu WooCommerce > Einstellungen > Produkte > Downloadbare Produkte und schauen Sie bei der Downloadmethode (File download method):
| Methode | Was passiert | Sicher? |
|---|---|---|
| Downloads erzwingen (Force downloads, Standard) | PHP liest die Datei und sendet sie selbst an den Kunden. | Ja. Bei sehr großen Dateien kann PHP an sein Zeitlimit stoßen. |
| X-Accel-Redirect/X-Sendfile | PHP prüft, der Webserver sendet die Datei. | Ja, sofern der Webserver dies unterstützt. |
| Nur weiterleiten (Redirect only) | Der Kunde gelangt zur tatsächlichen Adresse der Datei. | Nein. Wer die Adresse kennt, kann sie weitergeben. WooCommerce bezeichnet dies selbst als unsicher. |
Wählen Sie Downloads erzwingen, es sei denn, Sie wissen sicher, dass X-Sendfile funktioniert. Deaktivieren Sie außerdem die Option, bei der WooCommerce als letzten Ausweg auf Weiterleitung zurückgreift.
Der Ordner woocommerce_uploads muss verschlossen sein
Auch bei einer sicheren Methode muss der Ordner selbst für normale Besucher verschlossen sein. Sonst kann jemand, der den Dateinamen kennt, etwa aus einem durchgesickerten Link, die Datei direkt abrufen. WooCommerce legt daher bei der Installation zwei Dateien in den Ordner:
- eine leere
index.html, damit keine Dateiliste angezeigt wird; - eine
.htaccess-Datei mit der Regeldeny from all, die alle direkten Anfragen ablehnt.
Eine solche .htaccess-Datei funktioniert auf Webservern, die sie lesen, wie Apache und LiteSpeed. Unsere Server laufen mit LiteSpeed, daher funktioniert dieser Schutz bei WebOké ohne zusätzliche Einstellungen. Auf einem Server mit nginx liest der Webserver keine .htaccess-Datei; dort ist eine Regel in der Serverkonfiguration nötig. Ziehen Sie Ihren Shop später auf einen solchen Server um, überprüfen Sie dies erneut.
Die .htaccess-Datei ist versteckt. Möchten Sie sehen, ob sie vorhanden ist, lesen Sie Versteckte Dateien wie .htaccess anzeigen und bearbeiten. Löschen Sie sie nicht.
Überprüfen, dass ein direkter Link nicht funktioniert
- Öffnen Sie bei einem downloadbaren Produkt die Dateiadresse, wie WooCommerce sie anzeigt. Sie beginnt mit
/wp-content/uploads/woocommerce_uploads/. - Öffnen Sie diese Adresse in einem privaten Fenster, in dem Sie nicht angemeldet sind.
- Gut ist eine Fehlermeldung 403 Forbidden (oder 401 oder 404). Wird Ihnen die Datei einfach angezeigt oder können Sie sie herunterladen, dann ist der Ordner offen.
Testen Sie immer eine echte Datei, nicht nur den Ordner. Eine leere Seite beim Ordner kann die leere index.html sein, während die Dateien selbst durchaus offen sind. Auf der Befehlszeile geht es auch: curl -I https://example.com/wp-content/uploads/woocommerce_uploads/bestand.pdf muss einen 403-Status liefern. Was ein 403 bedeutet, lesen Sie unter Forbidden (403):** Sie haben keine Berechtigung, um auf / auf diesem Server zuzugreifen..
Limits und Zugriff
- Downloadlimit und Ablaufdatum stellen Sie pro Produkt oder Variation ein. Leer bedeutet unbegrenzt. Ein strenges Limit begrenzt das Teilen, führt aber zu Beschwerden, wenn jemand einen neuen Computer kauft.
- Zugriff nach Bezahlung ist standardmäßig aktiviert: Der Kunde kann herunterladen, sobald die Zahlung erfolgreich war.
- Genehmigte Download-Ordner (Approved download directories): Nur Dateien aus diesen Ordnern oder von diesen Adressen dürfen als Download dienen. Halten Sie die Liste kurz.
Verkaufen Sie digitale Inhalte an Verbraucher, regeln Sie auch, wie das Widerrufsrecht bei Downloads funktioniert. WooCommerce erledigt dies nicht automatisch. Dieser Artikel stellt keine Rechtsberatung dar; informieren Sie sich bei der zuständigen Verbraucherschutzbehörde oder fragen Sie einen Juristen.
Weiterführende Informationen
- Digital and downloadable product handling (WooCommerce, Englisch)
- Kostenloser WordPress-Kurs, Lektion 7.4 Die Website absichern: Rechte, Header und Sicherheits-Plugins
