Zabezpečení digitálních souborů ke stažení ve WooCommerce
Prodáváte e-knihu, PDF, hudbu nebo software prostřednictvím WooCommerce? Pak chcete, aby si soubor mohli stáhnout pouze platící zákazníci. WooCommerce to řeší pomocí zabezpečeného odkazu ke stažení, ale ten funguje spolehlivě pouze tehdy, pokud je metoda stahování bezpečná a složka se soubory je uzavřená. Zde se dozvíte, jak to funguje, co je třeba nastavit a jak ověřit, že přímý odkaz nefunguje.
Jak stahování ve WooCommerce funguje
U produktu zaškrtněte Ke stažení (Downloadable) a nahrajte soubor. WooCommerce jej uloží do složky wp-content/uploads/woocommerce_uploads/. Standardně připojí za název souboru náhodnou řadu znaků, takže je název obtížné uhodnout. Zákazník tuto adresu nikdy neobdrží, ale pouze odkaz do Vašeho obchodu. Při každém kliknutí WooCommerce zkontroluje, zda stahování patří k zaplacené objednávce a zda limit a datum vypršení platnosti ještě nebyly dosaženy. Teprve poté zákazník soubor obdrží.
Pokud se s příspěvkem nic neposílá, zaškrtněte také Virtuální (Virtual). Pak WooCommerce neúčtuje poštovné.
Vyberte bezpečnou metodu stahování
Přejděte do WooCommerce > Nastavení > Produkty > Produkty ke stažení a podívejte se na metodu stahování (File download method):
| Metoda | Co se stane | Bezpečné? |
|---|---|---|
| Vynutit stahování (Force downloads, výchozí) | PHP soubor načte a samo jej odešle zákazníkovi. | Ano. U velmi velkých souborů může PHP narazit na časový limit. |
| X-Accel-Redirect/X-Sendfile | PHP provede kontrolu, soubor odešle webový server. | Ano, pokud to webový server podporuje. |
| Pouze přesměrování (Redirect only) | Zákazník je přesměrován na skutečnou adresu souboru. | Ne. Kdo adresu zná, může ji sdílet. WooCommerce ji sám označuje jako nebezpečnou. |
Vyberte Vynutit stahování, pokud si nejste jisti, že X-Sendfile funguje. Vypněte také možnost, díky které se WooCommerce jako poslední záchrana vrací k přesměrování.
Složka woocommerce_uploads musí být uzavřená
I při bezpečné metodě musí být samotná složka uzavřená pro běžné návštěvníky. Jinak může kdokoli, kdo zná název souboru, například z uniklého odkazu, soubor stáhnout přímo. WooCommerce proto při instalaci umístí do složky dva soubory:
- prázdný
index.html, aby nebyl vidět seznam souborů; .htaccesss pravidlemdeny from all, které odmítá všechny přímé požadavky.
Takový soubor .htaccess funguje na webových serverech, které jej čtou, jako je Apache a LiteSpeed. Naše servery běží na LiteSpeed, takže u WebOké tato ochrana funguje bez dalšího nastavování. Na serveru s nginx webový server soubor .htaccess nečte; tam je potřeba pravidlo v konfiguraci serveru. Pokud svůj obchod později přesunete na takový server, zkontrolujte to znovu.
Soubor .htaccess je skrytý. Chcete-li zjistit, zda se tam nachází, podívejte se na Zobrazení a úprava skrytých souborů, jako je .htaccess. Neodstraňujte jej.
Ověření, že přímý odkaz nefunguje
- U produktu ke stažení otevřete adresu souboru tak, jak ji WooCommerce zobrazuje. Začíná na
/wp-content/uploads/woocommerce_uploads/. - Otevřete tuto adresu v soukromém okně, kde nejste přihlášeni.
- Dobrým výsledkem je chybová zpráva 403 Forbidden (nebo 401 či 404). Pokud se Vám soubor jen tak zobrazí nebo jej lze stáhnout, znamená to, že složka je otevřená.
Vždy testujte skutečný soubor, nejen samotnou složku. Prázdná stránka u složky může být pouze prázdný index.html, zatímco samotné soubory mohou být přesto otevřené. Lze to ověřit i na příkazovém řádku: curl -I https://example.com/wp-content/uploads/woocommerce_uploads/soubor.pdf by mělo vrátit 403. Co znamená 403, se dozvíte v článku Zakázáno (403): Nemáte oprávnění k přístupu k / na tomto serveru.
Limity a přístup
- Limit stahování a datum vypršení platnosti nastavíte u jednotlivého produktu nebo varianty. Prázdné pole znamená neomezeno. Přísný limit omezuje sdílení, ale vede ke stížnostem, pokud si zákazník pořídí nový počítač.
- Přístup po platbě je ve výchozím nastavení zapnutý: zákazník může stáhnout soubor ihned po úspěšné platbě.
- Schválené složky pro stahování (Approved download directories): jako stahovaný soubor mohou sloužit pouze soubory z těchto složek nebo z těchto adres. Udržujte seznam co nejkratší.
Pokud prodáváte digitální obsah spotřebitelům, upravte si také, jak funguje právo na odstoupení od smlouvy u stahování. WooCommerce to automaticky neřeší. Tento článek není právním poradenstvím; informujte se u příslušného úřadu na ochranu spotřebitele nebo se obraťte na právníka.
Další čtení
- Digital and downloadable product handling (WooCommerce, anglicky)
- Bezplatný kurz WordPress, lekce 7.4 Zabezpečení webu: oprávnění, hlavičky a bezpečnostní pluginy
