Sikkerhet: hva De aldri bør lagre i Storage
Unngå å lagre tokener eller personopplysninger i localStorage
Sikkerhet: hva De aldri bør lagre i Storage er en gratis leksjon i HTML Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i HTML Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i HTML Academy inneholder totalt 4 leksjoner.
Lagring er ren tekst
localStorage og sessionStorage lagrer data ukryptert på disken i brukerprofilen. Alle prosesser med tilgang til filsystemet – inkludert skadevare, sikkerhetskopieringsverktøy eller en annen innlogget bruker – kan lese alle verdiene De har lagret, uten å gå gjennom nettleseren.
Tilgjengelig for alle skript
Alle skript som kjører på opphavet, deler samme Storage. Et vellykket XSS-angrep, en kompromittert tredjeparts-SDK eller en ondsinnet nettleserutvidelse kan kalle localStorage.getItem og hente ut alle lagrede verdier. Det finnes ingen isolasjon mellom skriptene.
Lagre aldri autentiseringstokener
Ikke legg økttokener, JWT-er, oppfriskingstokener eller API-nøkler i localStorage. Hvis en angriper injiserer én enkelt linje med JavaScript, lekker tokenet umiddelbart. Bruk httpOnly-, Secure- og SameSite-informasjonskapsler, slik at tokenet aldri er tilgjengelig fra JavaScript.
Lagre aldri passord
Det er feil å lagre passord i noen form – ren tekst, hashet eller kryptert – på klientsiden. Hashing på klientsiden hjelper ikke når angriperen kan lese hashen og bruke den på nytt. Passordhåndtering hører utelukkende hjemme på serveren, med en dedikert passordhash som bcrypt.
Lagre aldri kredittkortdata
PCI-DSS forbyr lagring av kortnumre, CVV-er, data fra magnetstriper eller utløpsdatoer i klientlagring. Bruk i stedet en tokenisert betalingsleverandør (Stripe, Braintree, Adyen) som returnerer et kortvarig token bundet til originet ditt.
Lagre aldri personlige identifikatorer
Offentlige ID-er, fullstendige fødselsdatoer, hjemmeadresser og medisinske data tiltrekker seg oppmerksomhet fra tilsynsmyndigheter (GDPR, HIPAA) og angripere. Lagre bare det som kreves for den aktuelle økten, be om det på nytt ved behov, og la serveren være sannhetskilden.
XSS mangedobler skaden
En XSS-sårbarhet som lekker document.cookie, er alvorlig. Den samme sårbarheten på en side som lagrer token i localStorage, gir angriperen alle lagrede verdier på én gang. Behandle localStorage som en angrepsflate der "du har kompromittert ett skript, har du kompromittert alt".
Kryptering beskytter deg ikke
Kryptering av verdier med en nøkkel som også finnes i JavaScript, gir ingen reell beskyttelse — angriperen som kan lese chifferteksten, kan også lese nøkkelen. Ekte hemmeligheter må forbli på serversiden og utstedes på nytt, aldri lagres på klientsiden.
Trygge ting å lagre
UI-innstillinger (tema, sammenfelt sidestolpe, språk), ikke-sensitive funksjonsflagg, innhold i skjemautkast og midlertidig veivisertilstand er helt greit. De er uansett synlige for brukeren, og lekkasje av dem gjør ikke kontoovertakelse mulig.
localStorage.setItem("theme", "dark");
localStorage.setItem("sidebar:collapsed", "true");
localStorage.setItem("draft:post-123", draftMarkdown);Bruk informasjonskapsler for autentisering
Utsted autentisering via Set-Cookie: token=...; HttpOnly; Secure; SameSite=Strict. HttpOnly-flagget gjør informasjonskapselen utilgjengelig for JavaScript, noe som nøytraliserer de fleste tokenstjelende XSS-nyttelaster, selv når det finnes andre feil på siden.
Tiltak rundt bruk av lagring
Hvis du må mellomlagre data som ser sensitive ut, må du begrense omfanget strengt (kort TTL, tøm ved utlogging, fjern ved lukking av fanen via sessionStorage), bruke en streng Content Security Policy for å blokkere injiserte skript og revidere hvert tredjepartsskript som kjører på autentiserte sider.
Kunnskapstest
Hvorfor anses autentiseringstoken som lagres i localStorage, som en sikkerhetsrisiko?
Sammendrag
Web Storage er ren tekst, kan leses av skript og deles per origin. Legg aldri autentiseringstoken, passord, betalingsdata eller regulerte personopplysninger der. Oppbevar hemmeligheter i httpOnly-informasjonskapsler, og reserver localStorage for harmløs UI-tilstand som brukeren uansett kunne se.
Lær deg HTML med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 40
- Leksjoner
- 159
Ofte stilte spørsmål
Er leksjonen «Sikkerhet: hva De aldri bør lagre i Storage» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien HTML Academy, inkludert «Sikkerhet: hva De aldri bør lagre i Storage», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i HTML Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Sikkerhet: hva De aldri bør lagre i Storage»?
Unngå å lagre tokener eller personopplysninger i localStorage Du øver på HTML Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med HTML Academy?
Ingen tidligere erfaring er nødvendig. HTML Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Sikkerhet: hva De aldri bør lagre i Storage»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne HTML Academy-leksjonen?
Ja. Alle HTML Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- localStorage kontra sessionStorage
- Henting, angivelse og fjerning av elementer
- Lytting etter storage-hendelser
- Sikkerhet: hva De aldri bør lagre i Storage