Dansk hosting fra Aalborg
100% CO₂-neutral hosting
24/7/365 dansk support
support@hostious.io
● Hostious viden · artikel

Kunder ser hinandens kurv eller forkert navn – cache af personligt indhold

Skrevet af , stifter af Hostious · Udgivet 30. august 2026 · Opdateret 30. august 2026
Kunder ser hinandens kurv eller forkert navn – cache af personligt indhold

Kort svar: Når kunder ser en andens kurv, navn eller adresse, er personligt indhold havnet i page cache. Det er en cache-konfigurationsfejl – ikke en WooCommerce-bug og ikke et hack. Ryd cachen med det samme, og find derefter hullet: kurv, checkout og Min konto skal være undtaget, WooCommerce-sessionscookies skal udløse bypass, og håndbyggede CDN-regler må aldrig cache “alt”. Verificér med cache-headere som udlogget kunde.

Det er en af de mest alarmerende henvendelser, en webshop kan få: “Jeg står som Louise, og det er ikke mig” – eller en kurv fyldt med varer, kunden aldrig har lagt i. Første indskydelse er ofte hacking. Den rigtige forklaring er næsten altid mere banal og hurtigere at rette: en side med persondata er blevet gemt i cachen og serveret til den næste besøgende.

Kontrolramme: WordPress 7.1, WooCommerce 11.0 og PHP 8.4.23 udgør versionsgrundlaget pr. 30. august 2026. Diagrammet er en diagnoseillustration af mekanismen – ikke en hændelse på hostious.io.

Sådan opstår fejlen

Page cache gemmer den færdige HTML af en side og serverer den til alle. Det er præcis meningen for produktsider og artikler – og præcis katastrofen for sider med persondata. Bliver kurven, checkout eller en side med “Hej Louise” i headeren gemt, får de næste besøgende Louises udgave:

Diagnoseillustration: en side med kurvdata bliver cachet og serveret til den næste kunde
Mekanismen bag fejlen: kunde A’s personlige side gemmes i cachen og leveres til kunde B. Løsningen er undtagelser og cookie-bypass – ikke at slå cache fra. Diagnoseillustration.

Alle store cache-løsninger undtager som udgangspunkt WooCommerce-siderne automatisk. Fejlen opstår, når der bygges ovenpå: håndlavede “cache everything”-regler i CDN’et, omdøbte side-slugs som undtagelserne ikke kender, eller et nyt cache-lag, der ikke respekterer de gamle regler.

Akut: luk hullet nu

  1. Ryd al cache – både cache-plugin og CDN. Det fjerner de personlige sider fra cachen med det samme.
  2. Har du håndbyggede “cache alt”-regler i CDN’et, så slå dem fra, indtil undtagelserne er på plads.
  3. Notér tidspunkt og de ramte sider – det skal bruges til at finde hullet bagefter.

Find hullet: tre typiske steder

  • CDN-regler: en Cache Rule, der cacher alle URL’er, overtrumfer pluginets undtagelser. Kurv, checkout og konto skal have bypass – og WooCommerce-cookies (woocommerce_items_in_cart, woocommerce_cart_hash, sessionscookien) skal udløse bypass på alle sider. Opsætningen for Cloudflare står i Cache Rules-guiden til WooCommerce.
  • Omdøbte sider: hedder kurven /kurv/ i stedet for /cart/, skal håndbyggede undtagelser kende den danske slug. Pluginernes automatik følger sidetildelingen i WooCommerce – håndbyggede regler gør ikke.
  • Dynamiske elementer i cachede sider: viser headeren navn eller kurvantal på alle sider, skal den del hentes dynamisk (AJAX/ESI) – ellers følger persondata med i den cachede HTML, selv når selve siden gerne må caches.

Sådan bør opsætningen se ud

Målet er ikke mindre cache – en webshop skal cache aggressivt for at være hurtig. Målet er præcise undtagelser: alle produkt- og indholdssider caches; kurv, checkout og Min konto bypasses altid; og en besøgende med varer i kurven eller aktivt login får bypass overalt via cookie-reglerne. På LiteSpeed-hosting håndterer LiteSpeed Cache det med privat cache og ESI – se LiteSpeed-hubben – og kører du FlyingPress eller WP Rocket, er undtagelserne indbygget, så længst væk fra standard er der størst risiko.

Verifikation

Opsætningen er tæt, når du som udlogget kunde i inkognito kan se: cache-HIT på en produktside, men BYPASS/MISS på kurv, checkout og Min konto – ved hvert eneste besøg; at kurvantal og navn i headeren altid er dine egne, også lige efter en anden testbruger har handlet; og at en side besøgt med varer i kurven ikke får HIT. Tjek headerne i browserens Netværk-fane – header-guiden forklarer værdierne. Er du i tvivl om, hvorvidt jeres samlede opsætning er tæt, kigger Hostious gerne cache-lagene igennem.

Ofte stillede spørgsmål

Er kundernes data lækket – skal det anmeldes?

Andre kunder har kunnet se navne, adresser eller kurvindhold, så behandl det som en datahændelse: afklar omfang og varighed, og vurdér anmeldelsespligten efter GDPR sammen med jeres rådgiver. Betalingskortdata vises ikke på de cachede sider – de håndteres af betalingsgatewayen.

Hvorfor sker det kun en gang imellem?

Fordi den personlige side kun bliver cachet, når den første besøgende efter en cache-rydning rammer i en særlig tilstand – fx med varer i kurven. Derfor kommer klagerne i bursts efter cache-rydninger eller regelændringer.

Kan jeg bare slå cachen fra?

Det lukker hullet, men gør shoppen mærkbart langsommere – og det er unødvendigt. Rigtigt konfigureret cache med undtagelser og cookie-bypass giver både fart og korrekt indhold.

Læs også