Modul 3 · 3.3
Digitális és virtuális termékek
Modul 3: Termékek · Olvasási idő: 11 perc
Tanulási cél: A lecke után Ön biztonságosan tud digitális és virtuális termékeket értékesíteni: kiválaszt egy biztonságos letöltési módot, elzárja a letöltési mappát, korlátokat állít be, és helyesen rendezi az elállási jogot digitális tartalom esetén.
Kulcsfogalmak: virtuális termék, letölthető termék, letöltési link, letöltési korlát, lejárati dátum, letöltési mód (Letöltések kikényszerítése, X-Accel-Redirect/X-Sendfile, Kizárólag átirányítás), woocommerce_uploads, .htaccess, nginx, jóváhagyott letöltési mappák (Approved download directories), hozzáférés fizetés után, digitális tartalom, kifejezett hozzájárulás, lemondás az elállási jogról
Virtuális és letölthető: két különböző jelölőnégyzet
Egy egyszerű terméknél vagy egy változatnál két jelölőnégyzetet lát. Hasonlítanak egymásra, de mást csinálnak:
- A Virtuális (Virtual) azt jelenti: semmit nem kell szállítani. A WooCommerce nem számol fel szállítási költséget, és a pénztárban nem kér szállítási címet (ha a kosárban minden virtuális). Ilyen például egy helyszíni teakóstoló, egy e-mailben küldött ajándékutalvány vagy egy online workshop.
- A Digitális (letölthető) (Downloadable) azt jelenti: a fizetés után a vásárló egy vagy több fájlt kap. A WooCommerce vásárlónként letöltési linket készít, és ezt megjeleníti a visszaigazoló e-mailben, valamint a Fiókom > Letöltések alatt.
Egy PDF formátumú digitális receptkönyv általában mindkettő: postán semmi nem megy, és van egy fájl. Egy nyomtatott receptkönyv ingyenes PDF-melléklettel letölthető, de nem virtuális: a könyvet postán küldik.
A Theehuis Example a „Receptenboek Thee en Taart” című receptkönyvet PDF-ként árulja € 9,95 (≈ 3 612 Ft)-ért. Jelölőnégyzetek: virtuális és letölthető.
Hogyan működik egy letöltés, és miért számít a módszer
Ha egy letölthető termékhez fájlt tölt fel, a WooCommerce a wp-content/uploads/woocommerce_uploads/ mappába teszi. Alapértelmezés szerint a fájlnév végére egy véletlenszerű karaktersort fűz (ez az „Append a unique string to filename for security” beállítás, amely alapból be van kapcsolva). A vásárló soha nem ezt a címet kapja, hanem egy linket az Ön áruházára, egy rendelési kulccsal és egy letöltési kóddal. A WooCommerce minden kattintásnál ellenőrzi: kifizetett rendeléshez tartozik ez a letöltés, nem fogyott el a korlát, nem járt le? A vásárló csak ezután kapja meg a fájlt.
Azt, hogy a fájl ezután hogyan jut el a vásárlóhoz, a WooCommerce > Beállítások > Termékek > Letölthető termékek alatt, a letöltési módnál (File download method) választja ki:
| Módszer | Hogyan működik | Biztonság |
|---|---|---|
| Letöltések kikényszerítése (Force downloads, alapértelmezett) | A PHP beolvassa a fájlt, és maga küldi tovább | A valódi cím rejtve marad. Nagy fájloknál egyes szervereken akadozhat, vagy elérheti a PHP időkorlátját |
| X-Accel-Redirect/X-Sendfile | A PHP ellenőriz, a webszerver küldi a fájlt | Ugyanolyan biztonságos, és nagy fájloknál jobb; a webszervernek támogatnia kell (Apache esetén ehhez a mod_xsendfile modul kell, az nginx ismeri az X-Accel-Redirectet). Kérdezze meg a tárhelyszolgáltatóját |
| Kizárólag átirányítás (Redirect only) | A WooCommerce a vásárlót a valódi fájlcímre irányítja át | Nem biztonságos: akinek megvan a cím, megoszthatja, és a fájl vásárlás nélkül is letölthető. Maga a WooCommerce is „Insecure” jelzéssel látja el |
Válassza tehát a Letöltések kikényszerítése vagy az X-Sendfile módot. Az átirányítás csak vészmegoldás, az „Allow using redirect mode (insecure) as a last resort” beállítás pedig azt teszi lehetővé, hogy a WooCommerce átirányításra váltson, ha a másik módszer nem működik; ezt hagyja kikapcsolva, hacsak nem tudja pontosan, miért kell.
A mappa elzárása
A Letöltések kikényszerítése vagy az X-Sendfile mód mellett a woocommerce_uploads mappának zárva kell lennie a hétköznapi látogatók előtt. Különben aki kitalálja a fájlnevet, vagy kiolvassa egy kiszivárgott linkből, közvetlenül letöltheti a fájlt. Ezért a WooCommerce a telepítéskor két fájlt helyez el ebben a mappában:
- egy üres
index.htmlfájlt, hogy a mappa ne mutasson fájllistát; - egy
.htaccessfájltdeny from alltartalommal (Kizárólag átirányítás mód esetén:Options -Indexes).
Ez a .htaccess fájl Apache és LiteSpeed alatt működik (ahogy a WebOké és sok más megosztott tárhely esetén). nginx alatt a webszerver nem olvassa a .htaccess fájlt. Ott a szerverkonfigurációban kell lennie egy szabálynak, amely blokkolja a mappát. Menedzselt nginx-tárhelyen ezt néha a szolgáltató intézi; saját VPS-en Önnek kell megcsinálnia. A WooCommerce ezt maga is ellenőrzi, és értesítést jelenít meg az adminfelületen (és a Webhely Egészség oldalon), ha a mappa nem tűnik védettnek.
Néhány dolog, amire érdemes figyelni:
- Egy üres 200-as válasz nem bizonyíték. Ha lekéri a mappát, és üres oldalt lát, az lehet az üres
index.html, miközben maguk a fájlok nyitva vannak. Ezért egy fájlt is teszteljen (a feladat ezt elvégzi). - Külső fájlok. Egy terméknél máshol tárolt fájlra mutató linket is megadhat. Ehhez a WooCommerce a jóváhagyott letöltési mappák (Approved download directories) listáját használja: csak ezekből a mappákból vagy ezekről a címekről származó fájlok használhatók letöltésként. Így senki, akinek adminisztrátori joga van egy termékhez, nem kínálhat fel véletlenül vagy szándékosan a szerverről tetszőleges fájlt letöltésként. Tartsa rövidre ezt a listát.
- Biztonsági mentések és staging. A mappa bekerül a biztonsági mentésbe. Egy staging környezetben tehát a fizetős fájljai is ott vannak: zárja el a staging környezetet (7.3. lecke).
Korlátok és hozzáférés
Letölthető termékenként vagy változatonként a következőket állítja be:
- Letöltési korlát (Download limit): hányszor tölthet le a vásárló. Az üres mező korlátlant jelent. Egy például 5-ös korlát visszafogja a megosztást, de panaszokhoz vezet, ha valaki új laptopot vesz. Válasszon észszerű értéket, és segítsen azoknak a vásárlóknak, akik ezt kérik.
- Lejárati dátum (Download expiry): hány nap után szűnik meg a link.
Általános beállítások a Letölthető termékek alatt:
- A letöltéshez bejelentkezés szükséges (Downloads require login), alapból kikapcsolva. Bekapcsolva a vendégek semmit nem tudnak letölteni; csak akkor kapcsolja be, ha a fiók létrehozását is kötelezővé teszi.
- Hozzáférés fizetés után (Grant access to downloadable products after payment), alapból bekapcsolva: a vásárló letölthet, amint a rendelés Feldolgozás alatt állapotú, vagyis közvetlenül a sikeres fizetés után. Kikapcsolva csak a Teljesítve állapot után.
Elállás digitális tartalom esetén
Egy hagyományos teáskannánál a vásárlónak 14 napja van meggondolni magát (5.2. lecke). Egy letöltésnél ez nehézkes: akinek megvan a PDF, annak megvan, elállás után is. Ezért létezik egy kivétel, de csak feltételekkel. Az EU-ban ez a 2011/83/EU irányelv 16. cikkében szerepel; Hollandiában a holland Polgári Törvénykönyv (BW) 6:230p. cikkének g) pontjában. Nincs elállási jog a nem tárgyi adathordozón szolgáltatott digitális tartalom esetén, ha:
- a teljesítés a fogyasztó kifejezett, előzetes hozzájárulásával kezdődött meg;
- a fogyasztó kijelentette, hogy ezzel lemond az elállási jogáról; és
- Ön erről visszaigazolást adott (a szerződés visszaigazolásában, tartós adathordozón, például a rendelési e-mailben).
Ha e három közül bármelyik hiányzik, a vásárló megtartja az elállási jogát, akkor is, ha már letöltötte a fájlt. Belgiumban és Németországban ugyanez az uniós szabály a saját nemzeti jogban érvényes (lásd 5.2. lecke); Magyarországon a 45/2014. (II. 26.) Korm. rendelet a fogyasztó és a vállalkozás közötti szerződések részletes szabályairól ülteti át.
A WooCommerce ezt nem intézi el magától. Szüksége van:
- egy kötelező jelölőnégyzetre a pénztárban, csak akkor, ha digitális tartalom van a kosárban, például ezzel a szöveggel: „Hozzájárulok, hogy a teljesítés azonnal megkezdődjön, és tudomásul veszem, hogy ezzel elveszítem az elállási jogomat”;
- ugyanerre a szövegre visszaigazolásként az ezekhez a termékekhez tartozó rendelési e-mailben;
- az elállási tájékoztatóban a megfelelő mondatra arról, hogy ez a letöltésekre vonatkozik.
Vannak bővítmények, amelyek ilyen jelölőnégyzetet adnak hozzá; a pénztár blokk is kínál lehetőséget további mezőkre. Ezeket úgy értékelje, mint bármely más bővítményt. Egy előre bejelölt jelölőnégyzet nem számít kifejezett hozzájárulásnak (5.4. lecke).
Figyeljen a különbségre a virtuális szolgáltatásokhoz képest, például egy adott napon tartott workshopnál. Ott a szolgáltatásokra vonatkozó szabályok érvényesek, más kivételekkel. Olvassa el az 5.2. leckét.
Összefoglalás
- Virtuális = nincs szállítás; letölthető = fájlok a fizetés után. Egy PDF általában mindkettő.
- Válassza a Letöltések kikényszerítése vagy az X-Accel-Redirect/X-Sendfile módot; a Kizárólag átirányítás nem biztonságos.
- A
woocommerce_uploadsmappának zárva kell lennie:.htaccessApache és LiteSpeed alatt, szerverszabály nginx alatt. Egy valódi fájlt teszteljen, ne csak a mappát. - Tartsa rövidre a jóváhagyott letöltési mappák listáját, és állítson be észszerű korlátokat.
- Letöltéseknél csak kifejezett hozzájárulással, a jogról való lemondással és visszaigazolással nincs elállási jog; a WooCommerce ezt nem intézi el magától. Magyarországon a 45/2014. (II. 26.) Korm. rendelet szerint az elállási jog egyébként 14 napos.
Kvíz
Feladat
A3.3. feladat: Védettek az Ön letöltései? Ez a feladat nem linkelt útvonalakat kér le, ezért csak a saját áruházánál működik. Először igazolja, hogy a domain az Öné: létrehoz egy _weboke-cursus.<az Ön domainje> TXT rekordot a kapott kóddal, vagy elhelyez egy /.well-known/weboke-cursus-<code>.txt fájlt, benne ezzel a kóddal. Ezután adja meg az áruháza címét, és ha szeretné, egy letöltési fájl útvonalát úgy, ahogy a WooCommerce a terméknél mutatja (a /wp-content/uploads/woocommerce_uploads/ előtaggal kezdődik). A program lekéri a mappát (átirányítás követése nélkül, csak az elejét), és ha megadott útvonalat, egyszer lekéri annak a fájlnak a fejléceit. Zöld, ha a mappa 401-es, 403-as vagy 404-es választ ad, vagy fájllista nélküli oldalt, és a fájl 401-es, 403-as vagy 404-es választ ad. Narancs, ha nem adott meg fájlt: ilyenkor csak a mappát ellenőrizte, és egy üres oldal nem mond eleget. Piros, ha a mappa fájllistát mutat, vagy ha a fájl egyszerűen letölthető (200): ilyenkor bárki, akinek megvan a cím, vásárlás nélkül letöltheti. A program csak az állapotkódokat tárolja, a fájlt soha.
Kérdés önmagának (nem ellenőrizzük): milyen letöltési mód van beállítva az áruházában, és hogyan rendezte az elállást a digitális termékeinél?
Bővebben olvasva
- Digital and downloadable product handling (woocommerce.com, angol nyelven): https://woocommerce.com/document/digital-downloadable-product-handling/
- Ingyenes WordPress-tanfolyam 7.4: A weboldal megerősítése: jogosultságok, fejlécek és biztonsági bővítmények
- Forbidden (403): Önnek nincs jogosultsága a / eléréséhez ezen a szerveren
- Holland Polgári Törvénykönyv (Burgerlijk Wetboek) 6. könyv, 6:230p. cikk (wetten.overheid.nl, holland nyelven): https://wetten.overheid.nl/BWBR0005289/
A tudásbázis a WebOké-nál fennálló helyzetet írja le (LiteSpeed, a .htaccess működik); más szolgáltatóknál hasonlóan működik, kivéve nginx alatt.
