Skaitmeninių atsisiuntimų apsauga sistemoje „WooCommerce“
Ar parduodate elektroninę knygą, pdf failą, muziką ar programinę įrangą per WooCommerce? Tuomet norite, kad failą galėtų atsisiųsti tik mokantys klientai. WooCommerce tai sutvarko per apsaugotą atsisiuntimo nuorodą, tačiau tai veikia tik tuomet, jei atsisiuntimo metodas yra saugus ir aplankas su failais yra uždarytas. Čia sužinosite, kaip tai veikia, ką reikia nustatyti ir kaip patikrinti, kad tiesioginė nuoroda neveiktų.
Kaip veikia atsisiuntimas WooCommerce
Prie produkto pažymėkite Atsisiunčiamas (Downloadable) ir įkelkite failą. WooCommerce jį patalpina aplanke wp-content/uploads/woocommerce_uploads/. Pagal numatytuosius nustatymus prie failo pavadinimo pridedama atsitiktinė simbolių seka, kad pavadinimą būtų sunku atspėti. Klientas niekada negauna šio adreso, o tik nuorodą į Jūsų parduotuvę. Kiekvieno paspaudimo metu WooCommerce patikrina, ar atsisiuntimas priklauso apmokėtam užsakymui ir ar dar nepasiektas limitas bei galiojimo data. Tik tada klientas gauna failą.
Jei kartu nesiunčiate siuntos, pažymėkite taip pat Virtualus (Virtual). Tuomet WooCommerce neskaičiuoja siuntimo išlaidų.
Pasirinkite saugų atsisiuntimo metodą
Eikite į WooCommerce > Nustatymai > Produktai > Atsisiunčiami produktai (Downloadable products) ir peržiūrėkite atsisiuntimo metodą (File download method):
| Metodas | Kas vyksta | Saugu? |
|---|---|---|
| Priverstiniai atsisiuntimai (Force downloads, numatytasis) | PHP nuskaito failą ir pats jį siunčia klientui. | Taip. Esant labai dideliems failams, PHP gali pasiekti savo laiko limitą. |
| X-Accel-Redirect/X-Sendfile | PHP atlieka patikrinimą, failą siunčia žiniatinklio serveris. | Taip, jei žiniatinklio serveris tai palaiko. |
| Tik nukreipimas (Redirect only) | Klientas nukreipiamas į tikrąjį failo adresą. | Ne. Kas turi adresą, gali juo pasidalinti. Pats WooCommerce šį metodą įvardija kaip nesaugų. |
Pasirinkite Priverstinius atsisiuntimus, nebent esate tikri, kad X-Sendfile veikia. Taip pat išjunkite parinktį, pagal kurią WooCommerce kaip paskutinę išeitį pereina prie nukreipimo.
Aplankas woocommerce_uploads turi būti uždarytas
Taikant saugų metodą, pats aplankas turi būti uždarytas paprastiems lankytojams. Priešingu atveju bet kas, žinantis failo pavadinimą, pavyzdžiui, iš nutekėjusios nuorodos, galėtų failą atsisiųsti tiesiogiai. Dėl šios priežasties WooCommerce diegimo metu aplanke patalpina du failus:
- tuščią
index.html, kad nebūtų matomas failų sąrašas; - failą
.htaccesssu taisykledeny from all, kuri atmeta visus tiesioginius užklausimus.
Toks .htaccess failas veikia žiniatinklio serveriuose, kurie jį nuskaito, pavyzdžiui, Apache ir LiteSpeed. Mūsų serveriai veikia su LiteSpeed, todėl WebOké šis apsaugos mechanizmas veikia be jokių papildomų nustatymų. Serveryje su nginx žiniatinklio serveris .htaccess failo nenuskaito; tokiu atveju reikalinga taisyklė serverio konfigūracijoje. Jei vėliau perkelsite savo parduotuvę į tokį serverį, patikrinkite tai iš naujo.
.htaccess failas yra paslėptas. Jei norite patikrinti, ar jis yra, žiūrėkite Paslėptų failų, tokių kaip .htaccess, rodymas ir redagavimas. Netrinkite jo.
Patikrinimas, kad tiesioginė nuoroda neveiktų
- Atidarykite failo adresą, kaip jį rodo WooCommerce, prie atsisiunčiamo produkto. Jis prasideda nuo
/wp-content/uploads/woocommerce_uploads/. - Atidarykite šį adresą privačiame naršyklės lange, kuriame nesate prisijungę.
- Tinkamas rezultatas yra klaidos pranešimas 403 Forbidden (arba 401 ar 404). Jei failą galite paprastai peržiūrėti ar atsisiųsti, vadinasi, aplankas yra atviras.
Visada testuokite tikrą failą, ne tik patį aplanką. Tuščias puslapis aplanko adresu gali reikšti tuščią index.html failą, nors patys failai vis tiek gali būti atviri. Tai galima patikrinti ir komandinėje eilutėje: curl -I https://example.com/wp-content/uploads/woocommerce_uploads/bestand.pdf turi grąžinti 403. Ką reiškia 403, sužinosite čia: Draudžiama (403): Neturite leidimo pasiekti / šiame serveryje.
Limitai ir prieiga
- Atsisiuntimo limitą ir galiojimo datą nustatote prie kiekvieno produkto ar variacijos. Jei laukas tuščias, limitas neribotas. Griežtas limitas apriboja dalijimąsi, tačiau gali sukelti skundų, jei klientas įsigyja naują kompiuterį.
- Prieiga po apmokėjimo yra įjungta pagal numatytuosius nustatymus: klientas gali atsisiųsti failą, kai tik apmokėjimas yra sėkmingas.
- Patvirtinti atsisiuntimo aplankai (Approved download directories): tik failai iš šių aplankų arba iš šių adresų gali būti naudojami kaip atsisiuntimai. Šį sąrašą laikykite trumpą.
Jei parduodate skaitmeninį turinį vartotojams, sutvarkykite ir tai, kaip veikia atsisakymo teisė atsisiuntimų atveju. WooCommerce to automatiškai nesutvarko. Šis straipsnis nėra teisinė konsultacija; pasidomėkite ACM (Nyderlandų vartotojų ir rinkų priežiūros institucijoje) arba kreipkitės į teisininką.
Daugiau informacijos
- Digital and downloadable product handling (WooCommerce, anglų kalba)
- Nemokamas WordPress kursas, pamoka 7.4 Svetainės apsaugos stiprinimas: teisės, antraštės ir saugumo įskiepiai
