Modul 3 · 3.3
Digitale og virtuelle varer
Modul 3: Produkter · Læsetid: 11 minutter
Læringsmål: Efter denne lektion kan du sælge digitale og virtuelle varer sikkert: Du vælger en sikker downloadmetode, beskytter downloadmappen, sætter grænser og håndterer fortrydelsesretten ved digitalt indhold korrekt.
Centrale begreber: virtuel vare, vare til download, downloadlink, downloadgrænse, udløbsdato, downloadmetode (Gennemtving downloads, X-Accel-Redirect/X-Sendfile, Kun omdirigering), woocommerce_uploads, .htaccess, nginx, godkendte downloadmapper (Approved download directories), adgang efter betaling, digitalt indhold, udtrykkeligt samtykke, afkald på fortrydelsesret
Virtuel og kan downloades: to forskellige flueben
Ved en simpel vare eller en variation ser du to flueben. De ligner hinanden, men gør noget forskelligt:
- Virtuel (Virtual) betyder: Der sendes ikke noget. WooCommerce beregner ingen forsendelse og beder ikke om en leveringsadresse ved kassen (hvis alt i kurven er virtuelt). Tænk på en tesmagning på stedet, et gavekort, du sender på mail, eller en online workshop.
- Kan downloades (Downloadable) betyder: Efter betalingen får kunden en eller flere filer. WooCommerce laver et downloadlink til hver kunde og viser det i bekræftelsesmailen og under Min konto > Downloads.
En digital opskriftsbog som pdf er som regel begge dele: Der sendes ikke noget med posten, og der er en fil. En trykt opskriftsbog med en gratis pdf er til download, men ikke virtuel: Bogen sendes jo med posten.
Theehuis Example sælger "Receptenboek Thee en Taart" som pdf for € 9,95 (≈ 74,38 kr.). Flueben: virtuel og kan downloades.
Sådan fungerer en download, og hvorfor metoden betyder noget
Uploader du en fil til en vare til download, lægger WooCommerce den i mappen wp-content/uploads/woocommerce_uploads/. Som standard sætter den en tilfældig tegnstreng bag på filnavnet (indstillingen "Append a unique string to filename for security", der er slået til som standard). Kunden får aldrig den adresse, men et link til din shop med en ordrenøgle og en downloadkode. WooCommerce tjekker ved hvert klik: Hører denne download til en betalt ordre, er grænsen ikke brugt op, er den ikke udløbet? Først da får kunden filen.
Hvordan filen derefter når frem til kunden, vælger du under WooCommerce > Indstillinger > Varer > Varer til download, ved downloadmetoden (File download method):
| Metode | Sådan fungerer den | Sikkerhed |
|---|---|---|
| Gennemtving downloads (Force downloads, standard) | PHP læser filen og sender den selv videre | Den rigtige adresse forbliver skjult. Store filer kan på nogle servere hakke eller ramme tidsgrænsen i PHP |
| X-Accel-Redirect/X-Sendfile | PHP tjekker, webserveren sender filen | Lige så sikker og bedre til store filer; webserveren skal understøtte det (på Apache kræver det modulet mod_xsendfile, nginx kender X-Accel-Redirect). Spørg din hostingudbyder |
| Kun omdirigering (Redirect only) | WooCommerce sender kunden videre til den rigtige filadresse | Usikker: Den, der har adressen, kan dele den, og filen kan hentes uden køb. WooCommerce kalder den selv "Insecure" |
Vælg altså Gennemtving downloads eller X-Sendfile. Omdirigering er kun en nødløsning, og indstillingen "Allow using redirect mode (insecure) as a last resort" lader WooCommerce falde tilbage på omdirigering, hvis den anden metode fejler; lad den være slået fra, medmindre du ved hvorfor.
Beskyt mappen
Med Gennemtving downloads eller X-Sendfile skal mappen woocommerce_uploads være lukket for almindelige besøgende. Ellers kan en person, der gætter filnavnet eller finder det i et lækket link, hente filen direkte. Derfor lægger WooCommerce ved installationen to filer i mappen:
- en tom
index.html, så mappen ikke viser en liste over filer; - en
.htaccessmeddeny from all(ved metoden Kun omdirigering:Options -Indexes).
Filen .htaccess virker på Apache og LiteSpeed (som hos WebOké og mange andre delte hostingløsninger). På nginx læser webserveren ikke .htaccess. Der skal der stå en regel i serverkonfigurationen, som blokerer mappen. På administreret nginx-hosting klarer hostingudbyderen det nogle gange; på din egen VPS skal du gøre det selv. WooCommerce tjekker det selv og viser en besked i administrationen (og i Webstedshelbred), hvis mappen ikke ser ud til at være beskyttet.
Et par ting, du skal være opmærksom på:
- En tom 200 er intet bevis. Henter du mappen og ser en tom side, kan det være den tomme
index.html, mens selve filerne er åbne. Test derfor også én fil (opgaven gør det). - Filer udefra. Du kan også angive et link til en fil et andet sted ved en vare. Til det har WooCommerce listen over godkendte downloadmapper (Approved download directories): Kun filer fra de mapper eller adresser må bruges som download. Så kan ingen med administratorrettigheder til en vare ved et uheld eller med vilje tilbyde en vilkårlig fil fra serveren som download. Hold listen kort.
- Backup og staging. Mappen kommer med i din backup. På et staging-miljø ligger dine betalte filer altså også: Beskyt dit staging-miljø (lektion 7.3).
Grænser og adgang
For hver vare til download eller hver variation indstiller du:
- Downloadgrænse (Download limit): hvor mange gange kunden må downloade. Tom betyder ubegrænset. En grænse på for eksempel 5 begrænser deling, men giver klager, når nogen køber en ny bærbar. Vælg noget rimeligt, og hjælp kunder, der spørger.
- Udløbsdato (Download expiry): efter hvor mange dage linket holder op med at virke.
Generelle indstillinger under Varer til download:
- Downloads kræver login (Downloads require login), slået fra som standard. Slået til betyder det, at gæster ikke kan downloade noget; slå det kun til, hvis du også kræver konti.
- Adgang efter betaling (Grant access to downloadable products after payment), slået til som standard: Kunden kan downloade, så snart ordren har status Behandler, altså lige efter en gennemført betaling. Er den slået fra, først efter Gennemført.
Fortrydelse ved digitalt indhold
Ved en almindelig tekande har kunden 14 dages betænkningstid (lektion 5.2). Ved en download er det svært: Den, der har pdf'en, har den, også efter en fortrydelse. Derfor findes der en undtagelse, men kun på visse betingelser. I EU står den i artikel 16 i direktiv 2011/83/EU; i Holland i artikel 6:230p, litra g, i Burgerlijk Wetboek (BW). Der er ingen fortrydelsesret ved digitalt indhold, der ikke leveres på et fysisk medium, hvis:
- leveringen er begyndt med forbrugerens udtrykkelige forudgående samtykke;
- forbrugeren har erklæret, at han dermed giver afkald på sin fortrydelsesret; og
- du har givet en bekræftelse af det (i bekræftelsen af aftalen, på et varigt medium som ordremailen).
Mangler en af de tre, beholder kunden sin fortrydelsesret, også hvis han allerede har downloadet. I Belgien og Tyskland gælder den samme EU-regel i landets egen lov (se lektion 5.2). I Danmark står reglen i forbrugeraftaleloven, som giver 14 dages fortrydelsesret.
WooCommerce klarer det ikke af sig selv. Du har brug for:
- et obligatorisk flueben ved kassen, kun når der er digitalt indhold i kurven, med en tekst som "Jeg accepterer, at leveringen begynder med det samme, og jeg ved, at jeg dermed mister min fortrydelsesret";
- den samme tekst som bekræftelse i ordremailen for de varer;
- den rigtige sætning i dine oplysninger om fortrydelsesret om, at dette gælder for downloads.
Der findes udvidelser, som tilføjer sådan et flueben; kasseblokken har også muligheder for ekstra felter. Vurder dem som ethvert andet plugin. Et flueben, der er sat på forhånd, tæller ikke som udtrykkeligt samtykke (lektion 5.4).
Vær opmærksom på forskellen til virtuelle tjenesteydelser, som en workshop på en bestemt dato. Der gælder reglerne for tjenesteydelser, med andre undtagelser. Læs lektion 5.2.
Opsummering
- Virtuel = intet sendes; kan downloades = filer efter betaling. En pdf er som regel begge dele.
- Vælg Gennemtving downloads eller X-Accel-Redirect/X-Sendfile; Kun omdirigering er usikker.
- Mappen
woocommerce_uploadsskal være lukket:.htaccesspå Apache og LiteSpeed, en serverregel på nginx. Test en rigtig fil, ikke kun mappen. - Hold listen over godkendte downloadmapper kort, og sæt rimelige grænser.
- Ingen fortrydelsesret ved downloads kun med udtrykkeligt samtykke, afkald på retten og en bekræftelse; WooCommerce gør det ikke af sig selv. I Danmark gælder reglerne gennem forbrugeraftaleloven.
Quiz
Opgave
Opgave A3.3: Er dine downloads beskyttet? Denne opgave henter stier, der ikke er linket til, og virker derfor kun for din egen shop. Først viser du, at domænet er dit: Du opretter en TXT-record _weboke-cursus.<dit domæne> med den kode, du får, eller du lægger en fil /.well-known/weboke-cursus-<kode>.txt med koden i. Udfyld derefter adressen på din shop og, hvis du vil, stien til én downloadfil, sådan som WooCommerce viser den ved varen (den begynder med /wp-content/uploads/woocommerce_uploads/). Programmet henter mappen (uden at følge omdirigeringer, kun begyndelsen) og, hvis du har udfyldt en sti, én gang filens headere. Grøn, hvis mappen giver 401, 403 eller 404, eller en side uden en liste over filer, og filen giver 401, 403 eller 404. Orange, hvis du ikke har udfyldt en fil: Så er kun mappen tjekket, og en tom side siger ikke nok. Rød, hvis mappen viser en liste over filer, eller hvis filen bare kan downloades (200): Så kan alle med adressen hente den uden at købe. Programmet gemmer kun statuskoderne, aldrig filen.
Spørgsmål til dig selv (rettes ikke): Hvilken downloadmetode er indstillet i din shop, og hvordan har du håndteret fortrydelse ved dine digitale varer?
Læs videre
- Digital and downloadable product handling (woocommerce.com, engelsk): https://woocommerce.com/document/digital-downloadable-product-handling/
- Gratis WordPress-kursus 7.4: At hærde webstedet: rettigheder, headers og sikkerhedsplugins
- Forbidden (403): Du har ikke adgang til / på denne server
- Burgerlijk Wetboek bog 6, artikel 6:230p (wetten.overheid.nl, nederlandsk): https://wetten.overheid.nl/BWBR0005289/
- Beskyt digitale downloads i WooCommerce
Vidensbasen beskriver situationen hos WebOké (LiteSpeed, .htaccess virker); hos andre udbydere fungerer det på samme måde, undtagen på nginx.
