Защита на цифрови изтегляния в WooCommerce
Продавате ли електронна книга, pdf файл, музика или софтуер чрез WooCommerce? Тогава искате само плащащи клиенти да могат да изтеглят файла. WooCommerce урежда това с обезопасена връзка за изтегляне, но това работи добре само ако методът за изтегляне е сигурен и папката с файлове е затворена. Тук ще прочетете как работи това, какво настройвате и как проверявате, че директна връзка не работи.
Как работи изтеглянето в WooCommerce
Отметнете при продукт Downloadable (за изтегляне) и качете файла. WooCommerce го поставя в папката wp-content/uploads/woocommerce_uploads/. По подразбиране системата добавя произволна поредица от символи след името на файла, така че името да е трудно за отгатване. Клиентът никога не получава този адрес, а връзка към Вашия магазин. При всяко кликване WooCommerce проверява дали изтеглянето принадлежи на платена поръчка и дали лимитът и крайната дата все още не са достигнати. Едва тогава клиентът получава файла.
Ако не се изисква изпращане по пощата, отметнете и Virtual (виртуален). Тогава WooCommerce не начислява разходи за доставка.
Изберете сигурен метод за изтегляне
Отидете на WooCommerce > Settings > Products > Downloadable products и проверете метода за изтегляне (File download method):
| Метод | Какво се случва | Сигурно ли е? |
|---|---|---|
| Force downloads (принудително изтегляне, по подразбиране) | PHP чете файла и сам го изпраща на клиента. | Да. При много големи файлове PHP може да достигне времевото си ограничение. |
| X-Accel-Redirect/X-Sendfile | PHP проверява, уеб сървърът изпраща файла. | Да, ако уеб сървърът го поддържа. |
| Redirect only (само пренасочване) | Клиентът отива на действителния адрес на файла. | Не. Който разполага с адреса, може да го сподели. Самата WooCommerce нарича това несигурно. |
Изберете Force downloads, освен ако сте сигурни, че X-Sendfile работи. Изключете и опцията, при която WooCommerce прибягва до пренасочване като последно средство.
Папката woocommerce_uploads трябва да бъде затворена
При сигурен метод самата папка трябва да бъде затворена за обикновени посетители. В противен случай някой, който знае името на файла, например от изтекла връзка, може да изтегли файла директно. Затова при инсталацията WooCommerce поставя два файла в папката:
- празен
index.html, така че да не се вижда списък с файлове; .htaccessс правилотоdeny from all, което отказва всички директни заявки.
Такъв файл .htaccess работи на уеб сървъри, които го разчитат, като Apache и LiteSpeed. Нашите сървъри работят на LiteSpeed, така че при WebOké тази защита работи без допълнителни настройки. На сървър с nginx уеб сървърът не разчита файла .htaccess; там е необходимо правило в конфигурацията на сървъра. Ако по-късно преместите магазина си на такъв сървър, проверете отново.
Файлът .htaccess е скрит. Ако искате да проверите дали е там, вижте Показване и редактиране на скрити файлове като .htaccess. Не го изтривайте.
Проверка, че директна връзка не работи
- Отворете при продукт за изтегляне файловия адрес, както го показва WooCommerce. Той започва с
/wp-content/uploads/woocommerce_uploads/. - Отворете този адрес в прозорец за поверително сърфиране, в който не сте влезли в профила си.
- Добре е да получите съобщение за грешка 403 Forbidden (или 401, или 404). Ако файлът просто се показва или изтегля, папката е отворена.
Винаги тествайте действителен файл, не само папката. Празна страница при папката може да е празният index.html, докато самите файлове всъщност са отворени. От командния ред можете да проверите и така: curl -I https://example.com/wp-content/uploads/woocommerce_uploads/bestand.pdf трябва да върне 403. Какво означава 403, можете да прочетете в Забранено (403): Нямате разрешение за достъп до / на този сървър.
Лимити и достъп
- Download limit (лимит на изтегляне) и Expiry date (крайна дата) се настройват за всеки продукт или вариация. Празно поле означава неограничено. Строг лимит ограничава споделянето, но води до оплаквания, ако някой купи нов компютър.
- Grant access after payment (достъп след плащане) е активирано по подразбиране: клиентът може да изтегли веднага след успешно плащане.
- Approved download directories (одобрени папки за изтегляне): само файлове от тези папки или от тези адреси могат да служат за изтегляне. Поддържайте списъка кратък.
Ако продавате цифрово съдържание на потребители, уредете и как работи правото на отказ при изтегляния. WooCommerce не прави това автоматично. Тази статия не представлява правен съвет; проверете при съответния надзорен орган или се консултирайте с юрист.
Допълнително четене
- Digital and downloadable product handling (WooCommerce, на английски)
- Безплатен курс по WordPress, урок 7.4 Укрепване на сайта: права, заглавия и плъгини за сигурност
Искате да научите повече? Преминете безплатния курс Онлайн магазин с WooCommerce, урок 3.3 Цифрови и виртуални продукти.
