3 modulis · 3.3
Skaitmeninės ir virtualios prekės
3 modulis: Prekės · Skaitymo laikas: 11 min.
Mokymosi tikslas: po šios pamokos galėsite saugiai parduoti skaitmenines ir virtualias prekes. Pasirinksite saugų atsisiuntimo būdą, apsaugosite atsisiuntimų aplanką, nustatysite limitus ir tinkamai sutvarkysite teisę atsisakyti sutarties, kai parduodate skaitmeninį turinį.
Pagrindinės sąvokos: virtuali prekė, atsisiunčiama prekė, atsisiuntimo nuoroda, atsisiuntimų limitas, galiojimo data, atsisiuntimo būdas (Automatinis pasiūlymas atsisiųsti, X-Accel-Redirect/X-Sendfile, Tik nukreipti), woocommerce_uploads, .htaccess, nginx, patvirtinti atsisiuntimų aplankai (Approved download directories), prieiga po apmokėjimo, skaitmeninis turinys, aiškus sutikimas, atsisakymas teisės atsisakyti sutarties
Virtualus ir atsisiunčiamas: dvi skirtingos varnelės
Paprastos prekės arba variacijos nustatymuose matysite dvi varneles. Jos atrodo panašiai, tačiau atlieka skirtingas funkcijas:
- Virtualus (Virtual) reiškia, kad niekas nesiunčiama. WooCommerce neskaičiuoja pristatymo išlaidų ir atsiskaitant neprašo pristatymo adreso (jei visos krepšelio prekės yra virtualios). Pavyzdžiui, arbatos degustacija vietoje, el. paštu siunčiamas dovanų čekis ar internetinis seminaras.
- Atsisiunčiamas (Downloadable) reiškia, kad po apmokėjimo klientas gauna vieną ar kelis failus. WooCommerce kiekvienam klientui sukuria atsisiuntimo nuorodą ir parodo ją patvirtinimo laiške bei skiltyje Paskyra > Atsisiuntimai.
Skaitmeninė receptų knyga PDF formatu dažniausiai yra ir viena, ir kita: paštu nieko nesiunčiama, o failas yra. Spausdinta receptų knyga su nemokamu PDF priedu yra atsisiunčiama, bet ne virtuali: knyga siunčiama paštu.
Arbatinė Example, internetinė parduotuvė Utrechte (Nyderlanduose), parduoda „Receptenboek Thee en Taart“ PDF formatu už € 9,95. Varnelės: virtualus ir atsisiunčiamas.
Kaip veikia atsisiuntimas ir kodėl svarbus būdas
Kai atsisiunčiamai prekei įkeliate failą, WooCommerce jį įdeda į aplanką wp-content/uploads/woocommerce_uploads/. Pagal numatytuosius nustatymus prie failo pavadinimo pridedama atsitiktinė simbolių seka (nustatymas „Append a unique string to filename for security“, numatytasis yra įjungtas). Klientas niekada negauna šio adreso: jis gauna nuorodą į Jūsų parduotuvę su užsakymo raktu ir atsisiuntimo kodu. Kiekvieną kartą paspaudus WooCommerce tikrina: ar šis atsisiuntimas priklauso apmokėtam užsakymui, ar neišnaudotas limitas, ar nepasibaigė galiojimas? Tik tada klientas gauna failą.
Kaip failas toliau perduodamas klientui, pasirenkate skiltyje WooCommerce > Nustatymai > Produktai > Atsisiunčiami produktai, nustatyme atsisiuntimo būdas (File download method):
| Būdas | Kaip veikia | Saugumas |
|---|---|---|
| Automatinis pasiūlymas atsisiųsti (Force downloads, numatytasis) | PHP nuskaito failą ir pats jį perduoda | Tikrasis adresas lieka paslėptas. Dideli failai kai kuriuose serveriuose gali strigti arba viršyti PHP laiko ribą |
| X-Accel-Redirect/X-Sendfile | PHP patikrina, o failą perduoda žiniatinklio serveris | Toks pat saugus ir geresnis dideliems failams; žiniatinklio serveris turi tai palaikyti (Apache reikia modulio mod_xsendfile, nginx palaiko X-Accel-Redirect). Pasiteiraukite savo talpinimo paslaugų teikėjo |
| Tik nukreipti (Redirect only) | WooCommerce nukreipia klientą į tikrąjį failo adresą | Nesaugus: turintis adresą gali juo dalintis, o failą galima gauti jo nepirkus. Pati WooCommerce jį vadina „Insecure“ |
Todėl rinkitės Automatinis pasiūlymas atsisiųsti arba X-Sendfile. Nukreipimas tėra kraštutinė priemonė, o nustatymas „Allow using redirect mode (insecure) as a last resort“ leidžia WooCommerce grįžti prie nukreipimo, jei kitas būdas nepavyksta; palikite jį išjungtą, nebent tiksliai žinote, kodėl jo reikia.
Aplanko apsauga
Naudojant Automatinis pasiūlymas atsisiųsti arba X-Sendfile, aplankas woocommerce_uploads turi būti uždarytas paprastiems lankytojams. Kitaip asmuo, atspėjęs failo pavadinimą arba sužinojęs jį iš nutekėjusios nuorodos, galėtų failą parsisiųsti tiesiogiai. Todėl diegdama WooCommerce į šį aplanką įdeda du failus:
- tuščią
index.html, kad aplankas nerodytų failų sąrašo; .htaccesssudeny from all(kai naudojamas būdas Tik nukreipti:Options -Indexes).
Šis .htaccess failas veikia Apache ir LiteSpeed serveriuose (kaip WebOké ir daugelyje kitų bendrojo talpinimo paslaugų). nginx serveris .htaccess neskaito. Ten serverio konfigūracijoje turi būti taisyklė, blokuojanti aplanką. Valdomame nginx talpinime tai kartais sutvarko talpinimo paslaugų teikėjas; savo VPS turite tai padaryti patys. WooCommerce tai tikrina pati ir, jei aplankas atrodo neapsaugotas, parodo pranešimą valdymo skydelyje (ir skiltyje Tinklalapio būklė).
Keli dalykai, į kuriuos verta atkreipti dėmesį:
- Tuščias atsakymas 200 nėra įrodymas. Jei užklausę aplanko matote tuščią puslapį, tai gali būti tuščias
index.html, nors patys failai lieka atviri. Todėl patikrinkite ir vieną failą (užduotis tai daro). - Išoriniai failai. Prekei galite nurodyti ir nuorodą į kitur esantį failą. Tam WooCommerce turi patvirtintų atsisiuntimų aplankų sąrašą (Approved download directories): atsisiuntimams galima naudoti tik failus iš šių aplankų arba adresų. Taip niekas, turintis administravimo teises, per klaidą ar tyčia negali prekėje pasiūlyti atsisiųsti bet kurio serverio failo. Šį sąrašą laikykite trumpą.
- Atsarginės kopijos ir bandomoji aplinka. Aplankas patenka į atsarginę kopiją. Vadinasi, bandomojoje (staging) aplinkoje taip pat yra Jūsų mokami failai: apsaugokite bandomąją aplinką (pamoka 7.3).
Limitai ir prieiga
Kiekvienai atsisiunčiamai prekei arba variacijai nustatote:
- Atsisiuntimų limitas (Download limit): kiek kartų klientas gali atsisiųsti. Palikus tuščią, kiekis neribojamas. Pavyzdžiui, 5 kartų limitas riboja dalinimąsi, tačiau sukelia nusiskundimų, kai kas nors įsigyja naują kompiuterį. Pasirinkite protingą skaičių ir padėkite paprašiusiems klientams.
- Galiojimo data (Download expiry): po kiek dienų nuoroda nustoja veikti.
Bendrieji nustatymai skiltyje Atsisiunčiami produktai:
- Atsisiuntimui reikia prisijungti (Downloads require login), numatytasis išjungtas. Įjungus svečiai negali nieko atsisiųsti; įjunkite tik tada, jei paskyros taip pat yra privalomos.
- Prieiga po apmokėjimo (Grant access to downloadable products after payment), numatytasis įjungtas: klientas gali atsisiųsti, kai tik užsakymo būsena yra Vykdomas, t. y. iškart po sėkmingo apmokėjimo. Jei išjungta, tik pasiekus būseną Įvykdytas.
Teisė atsisakyti sutarties ir skaitmeninis turinys
Pirkdamas įprastą arbatinuką klientas turi 14 dienų apsisprendimo laikotarpį (pamoka 5.2). Su atsisiuntimu tai sudėtinga: kas turi PDF, tas jį ir turi, net atsisakęs sutarties. Todėl yra išimtis, bet tik su sąlygomis. ES ji įtvirtinta direktyvos 2011/83/ES 16 straipsnyje; Nyderlanduose Civilinio kodekso (BW) 6:230p straipsnio g punkte. Teisės atsisakyti sutarties nėra, kai skaitmeninis turinys pateikiamas ne materialioje laikmenoje, jei:
- pateikimas pradėtas gavus aiškų išankstinį vartotojo sutikimą;
- vartotojas patvirtino, kad taip netenka teisės atsisakyti sutarties; ir
- Jūs pateikėte to patvirtinimą (sutarties patvirtinime, patvariojoje laikmenoje, pavyzdžiui, užsakymo laiške).
Jei trūksta bent vienos iš šių sąlygų, klientas išsaugo teisę atsisakyti sutarties, net jei jau atsisiuntė failą. Belgijoje ir Vokietijoje ta pati ES taisyklė galioja pagal jų nacionalinę teisę (žr. pamoką 5.2). Lietuvoje teisė atsisakyti nuotolinės sutarties įtvirtinta Lietuvos Respublikos civiliniame kodekse ir Vartotojų teisių apsaugos įstatyme.
WooCommerce to nesutvarko savaime. Jums reikia:
- privalomos varnelės atsiskaitant, rodomos tik tada, kai krepšelyje yra skaitmeninio turinio, su tekstu, pavyzdžiui: „Sutinku, kad pateikimas prasidėtų iš karto, ir žinau, kad taip netenku teisės atsisakyti sutarties“;
- to paties teksto kaip patvirtinimo užsakymo laiške dėl šių prekių;
- tinkamo sakinio Jūsų informacijoje apie teisę atsisakyti sutarties, kad tai taikoma atsisiuntimams.
Yra plėtinių, kurie prideda tokią varnelę; atsiskaitymo blokas taip pat leidžia pridėti papildomų laukų. Vertinkite juos kaip bet kurį kitą įskiepį. Varnelė, kuri pažymėta iš anksto, nelaikoma aiškiu sutikimu (pamoka 5.4).
Atkreipkite dėmesį į skirtumą nuo virtualių paslaugų, pavyzdžiui, seminaro konkrečią dieną. Joms taikomos paslaugų taisyklės su kitomis išimtimis. Skaitykite pamoką 5.2.
Santrauka
- Virtualus = nieko nesiunčiama; atsisiunčiamas = failai po apmokėjimo. PDF dažniausiai yra abu.
- Rinkitės Automatinis pasiūlymas atsisiųsti arba X-Accel-Redirect/X-Sendfile; Tik nukreipti yra nesaugus.
- Aplankas
woocommerce_uploadsturi būti uždarytas:.htaccessApache ir LiteSpeed serveriuose, serverio taisyklė nginx. Tikrinkite tikrą failą, ne tik aplanką. - Patvirtintų atsisiuntimų aplankų sąrašą laikykite trumpą ir nustatykite protingus limitus.
- Teisės atsisakyti sutarties dėl atsisiuntimų nėra tik esant aiškiam sutikimui, šios teisės atsisakymui ir patvirtinimui; WooCommerce to nedaro savaime. Lietuvoje tai reglamentuoja Lietuvos Respublikos civilinis kodeksas ir Vartotojų teisių apsaugos įstatymas.
Testas (quiz)
Užduotis
Užduotis A3.3: Ar Jūsų atsisiunčiami failai apsaugoti? Ši užduotis užklausia kelių, į kuriuos nėra nuorodų, todėl veikia tik Jūsų pačių parduotuvei. Pirmiausia įrodote, kad domenas priklauso Jums: sukuriate TXT įrašą _weboke-cursus.<Jūsų domenas> su gautu kodu arba patalpinate failą /.well-known/weboke-cursus-<code>.txt su tuo kodu. Tada įveskite savo parduotuvės adresą ir, jei norite, vieno atsisiunčiamo failo kelią, kaip jį rodo WooCommerce prekės nustatymuose (jis prasideda /wp-content/uploads/woocommerce_uploads/). Programa užklausia aplanko (be nukreipimų, tik pradžios) ir, jei įvedėte kelią, vieną kartą to failo antraščių. Žalia, jei aplankas grąžina 401, 403 arba 404 arba puslapį be failų sąrašo, o failas grąžina 401, 403 arba 404. Oranžinė, jei failo neįvedėte: tada patikrintas tik aplankas, o tuščias puslapis nepasako pakankamai. Raudona, jei aplankas rodo failų sąrašą arba jei failą galima tiesiog atsisiųsti (200): tada kiekvienas, turintis adresą, gali jį gauti nepirkęs. Programa išsaugo tik būsenos kodus, niekada ne patį failą.
Klausimas sau (netikrinamas): koks atsisiuntimo būdas nustatytas Jūsų parduotuvėje ir kaip sutvarkėte teisę atsisakyti sutarties dėl savo skaitmeninių prekių?
Platesniam skaitymui
- Digital and downloadable product handling (woocommerce.com, anglų k.): https://woocommerce.com/document/digital-downloadable-product-handling/
- Nemokamas WordPress kursas 7.4: Svetainės apsaugos stiprinimas: teisės, antraštės ir saugumo įskiepiai
- Draudžiama (403): Jūs neturite teisės pasiekti / šiame serveryje
- Nyderlandų Civilinis kodeksas (Burgerlijk Wetboek), 6 knyga, 6:230p straipsnis (wetten.overheid.nl, olandų k.): https://wetten.overheid.nl/BWBR0005289/
- Skaitmeninių atsisiuntimų apsauga sistemoje „WooCommerce“
Žinių bazėje aprašyta situacija WebOké (LiteSpeed, .htaccess veikia); pas kitus paslaugų teikėjus tai veikia panašiai, išskyrus nginx.
