Content Security Policy: meta http-equiv
Angiv en Content Security Policy via meta http-equiv
Content Security Policy: meta http-equiv er en gratis HTML Academy-lektion på CoddyKit. Dette er lektion 1 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.
Hvad er CSP?
Content Security Policy er en politik, som håndhæves af browseren, og som begrænser, hvilke ressourcer en side kan indlæse og køre. Det er det stærkeste forsvar mod Cross-Site Scripting: Selv hvis en angriber indsætter et <script>-tag, nægter browseren at køre det, medmindre politikken tillader det.
To måder at levere CSP på
CSP kan sendes som en HTTP-svarheader (Content-Security-Policy: ...) eller som et meta-tag i HTML: <meta http-equiv="Content-Security-Policy" content="...">. Headeren foretrækkes; meta-tagget er nyttigt, når du ikke kan styre serveren.
<meta http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self' https://cdn.example.com">Almindelige direktiver
default-src fungerer som reserve for ikke-angivne ressourcetyper. script-src, style-src, img-src, connect-src (XHR/fetch), font-src og frame-src begrænser hver sin type. Hvidlist bestemte oprindelser, eller brug 'self' til kun samme oprindelse.
Nøgleordet self
'self' (i anførselstegn) henviser til sidens egen oprindelse. script-src 'self' betyder "kør kun scripts, der hostes på samme oprindelse som siden". Dette er grundlaget for de fleste politikker; tilføj bestemte eksterne CDN'er efter behov.
Blokering af indlejrede scripts
Som standard blokerer CSP alle indlejrede <script>-tags og attributter til hændelseshåndterere (onclick). Dette er den stærkeste XSS-beskyttelse: Et indsat <script>-tag kan ikke køre, fordi det er indlejret. Flyt alle scripts til eksterne filer, der refereres til med src.
Nonces og hashes
Til nødvendige indlejrede scripts skal du bruge en nonce: Serveren genererer et tilfældigt token for hver forespørgsel, angiver det som script-src 'nonce-RANDOM' i CSP og tilføjer nonce="RANDOM" til legitime <script>-tags. Indsatte scripts mangler noncen og blokeres.
<meta http-equiv="Content-Security-Policy"
content="script-src 'nonce-abc123'">
<script nonce="abc123">// allowed</script>
<script>// blocked — no nonce</script>unsafe-inline og unsafe-eval
'unsafe-inline' tillader indlejrede scripts og typografier igen. 'unsafe-eval' tillader eval() og new Function() igen. Begge dele svækker CSP alvorligt – brug dem kun som sidste udvej under en migrering, og planlæg at fjerne dem.
Begrænsninger ved meta-tags
CSP leveret via et meta-tag kan ikke bruge direktivet report-uri eller andre rapporteringsfunktioner. Det træder også i kraft senere end en header – alt før meta-tagget er ubeskyttet. Headere er klart bedre; brug kun meta-tagget som reserve.
Tilstand med kun rapportering
Afprøv en ny politik uden at ødelægge webstedet: Content-Security-Policy-Report-Only: .... Browseren rapporterer overtrædelser uden at blokere dem, så du kan finjustere politikken, indtil den tillader alle legitime ressourcer, før du slår håndhævelsen til.
Almindelige faldgruber
Hvis du glemmer style-src 'unsafe-inline', blokeres indlejrede typografier (som frameworks ofte genererer). Hvis du glemmer connect-src, blokeres AJAX-kald til API'er. Afprøv altid politikken i tilstanden med kun rapportering først, og gennemgå konsollen for blokerede ressourcer.
Moderne CSP-strategi
En streng CSP kombinerer script-src 'nonce-RANDOM' 'strict-dynamic' til scripts med en stram tilladelsesliste for alt andet. 'strict-dynamic' lader scripts med nonce indlæse flere scripts uden at angive hvert enkelt script – det er meget lettere at vedligeholde end tilladelseslister pr. oprindelse.
Videnstjek
Hvordan beskytter CSP mod XSS-angreb, selv når en angriber med succes indsætter et script-tag?
Opsummering
CSP er en politik, der håndhæves af browseren, og som begrænser, hvilke scripts, typografier, billeder og andre ressourcer der kan indlæses. Lever den via en svarheader (foretrukket) eller et meta-tag. Brug nonces til nødvendige indlejrede scripts, undgå unsafe-inline og unsafe-eval, og afprøv først i tilstanden med kun rapportering. En streng CSP med 'nonce-X' 'strict-dynamic' er den moderne grundstandard.
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 “Content Security Policy: meta http-equiv” gratis?
Ja — alle 3 lektioner i læringssporet HTML Academy, inklusive “Content Security Policy: meta http-equiv”, 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 “Content Security Policy: meta http-equiv”?
Angiv en Content Security Policy via meta http-equiv 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 1 af 4.
Hvor lang tid tager lektionen “Content Security Policy: meta http-equiv”?
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