Zabezpieczanie treści cyfrowych do pobrania w WooCommerce
Sprzedają Państwo e-booka, plik pdf, muzykę lub oprogramowanie przez WooCommerce? W takim przypadku zależy Państwu na tym, aby plik mogli pobrać wyłącznie płacący klienci. WooCommerce zapewnia to za pomocą zabezpieczonego linku do pobrania, ale działa to poprawnie tylko wtedy, gdy metoda pobierania jest bezpieczna, a folder z plikami jest zamknięty. W tym artykule dowiedzą się Państwo, jak to działa, co należy ustawić oraz jak sprawdzić, że bezpośredni link nie działa.
Jak działa pobieranie w WooCommerce
Przy produkcie zaznaczają Państwo opcję Downloadable i przesyłają plik. WooCommerce umieszcza go w folderze wp-content/uploads/woocommerce_uploads/. Domyślnie do nazwy pliku dodawany jest losowy ciąg znaków, dzięki czemu nazwę trudno odgadnąć. Klient nigdy nie otrzymuje tego adresu, lecz link do sklepu. Przy każdym kliknięciu WooCommerce sprawdza, czy pobranie dotyczy opłaconego zamówienia oraz czy limit i data ważności jeszcze nie zostały osiągnięte. Dopiero wtedy klient otrzymuje plik.
Jeśli z produktem nie jest związana wysyłka, prosimy zaznaczyć również opcję Virtual. Wtedy WooCommerce nie naliczy kosztów wysyłki.
Wybór bezpiecznej metody pobierania
Proszę przejść do WooCommerce > Settings > Products > Downloadable products i sprawdzić metodę pobierania plików (File download method):
| Metoda | Co się dzieje | Bezpieczna? |
|---|---|---|
| Force downloads (domyślnie) | PHP odczytuje plik i samo wysyła go do klienta. | Tak. Przy bardzo dużych plikach PHP może napotkać limit czasu. |
| X-Accel-Redirect/X-Sendfile | PHP przeprowadza kontrolę, a serwer WWW wysyła plik. | Tak, jeśli serwer WWW to obsługuje. |
| Redirect only | Klient zostaje przekierowany na rzeczywisty adres pliku. | Nie. Kto zna adres, może go udostępnić. Samo WooCommerce określa tę metodę jako niebezpieczną. |
Prosimy wybrać Force downloads, chyba że mają Państwo pewność, że X-Sendfile działa poprawnie. Proszę również wyłączyć opcję, dzięki której WooCommerce jako ostatnią deskę ratunku przełącza się na przekierowanie.
Folder woocommerce_uploads musi być zamknięty
Przy bezpiecznej metodzie sam folder musi być zamknięty dla zwykłych odwiedzających. W przeciwnym razie osoba znająca nazwę pliku, na przykład z wycieku linku, może pobrać plik bezpośrednio. Dlatego WooCommerce umieszcza podczas instalacji dwa pliki w folderze:
- pusty plik
index.html, dzięki czemu nie jest widoczna lista plików; - plik
.htaccessz regułądeny from all, która odrzuca wszystkie bezpośrednie żądania.
Taki plik .htaccess działa na serwerach WWW, które go odczytują, takich jak Apache i LiteSpeed. Nasze serwery działają na LiteSpeed, dzięki czemu w WebOké to zabezpieczenie działa bez dodatkowych ustawień. Na serwerze z nginx serwer WWW nie odczytuje pliku .htaccess; w takim przypadku potrzebna jest reguła w konfiguracji serwera. Jeśli przeniosą Państwo sklep na taki serwer, prosimy ponownie to sprawdzić.
Plik .htaccess jest ukryty. Aby sprawdzić, czy się tam znajduje, proszę zapoznać się z artykułem Wyświetlanie i edytowanie ukrytych plików, takich jak .htaccess. Proszę go nie usuwać.
Sprawdzanie, że bezpośredni link nie działa
- Przy produkcie do pobrania proszę otworzyć adres pliku w takiej postaci, w jakiej pokazuje go WooCommerce. Zaczyna się on od
/wp-content/uploads/woocommerce_uploads/. - Proszę otworzyć ten adres w oknie prywatnym, w którym nie są Państwo zalogowani.
- Prawidłowy wynik to komunikat błędu 403 Forbidden (lub 401 albo 404). Jeśli plik jest po prostu widoczny lub można go pobrać, folder jest otwarty.
Proszę zawsze testować rzeczywisty plik, a nie tylko sam folder. Pusta strona przy folderze może oznaczać pusty plik index.html, podczas gdy same pliki mogą być nadal otwarte. Można to też sprawdzić w wierszu poleceń: curl -I https://example.com/wp-content/uploads/woocommerce_uploads/bestand.pdf powinno zwrócić 403. Co oznacza 403, mogą Państwo przeczytać w artykule Zabronione (403): Nie mają Państwo uprawnień dostępu do / na tym serwerze.
Limity i dostęp
- Limit pobrań i data ważności ustawiane są dla każdego produktu lub wariantu. Puste pole oznacza brak ograniczeń. Surowy limit ogranicza udostępnianie, ale powoduje reklamacje, gdy ktoś kupi nowy komputer.
- Dostęp po płatności jest domyślnie włączony: klient może pobrać plik od razu po pomyślnym zakończeniu płatności.
- Approved download directories: tylko pliki z tych folderów lub z tych adresów mogą służyć jako pobieranie. Proszę utrzymywać tę listę krótką.
Jeśli sprzedają Państwo treści cyfrowe konsumentom, prosimy również uregulować sposób działania prawa do odstąpienia od umowy przy pobieraniu plików. WooCommerce nie robi tego automatycznie. Niniejszy artykuł nie stanowi porady prawnej; prosimy sprawdzić informacje u odpowiedniego urzędu ochrony konsumentów lub zasięgnąć porady prawnika.
Dalsza lektura
- Digital and downloadable product handling (WooCommerce, w języku angielskim)
- Bezpłatny kurs WordPress, lekcja 7.4 Zabezpieczanie strony: uprawnienia, nagłówki i wtyczki bezpieczeństwa
