iframe-sikkerhed: clickjacking og X-Frame-Options
Forebyg clickjacking-angreb med X-Frame-Options og CSP
iframe-sikkerhed: clickjacking og X-Frame-Options er en gratis HTML Academy-lektion på CoddyKit. Dette er lektion 2 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 klik-kapring?
Klik-kapring (manipulation af brugerfladen) indlejrer et målsite i en gennemsigtig iframe oven på en lokkeside. Du tror, at du klikker på lokkesiden, men klikker faktisk på den skjulte, godkendte side nedenunder — og udfører handlinger på målsitet uden at vide det.
Mekanikken bag klik-kapring
Angriberen indlæser victim.com i en gennemsigtig iframe, der er placeret over en knap med teksten "Klik for at vinde!". Når du klikker, klikker du faktisk på victim.com's knap "Slet konto" — som allerede er godkendt med dig som bruger via victim.com's sessionscookie. Der kræves ingen phishing.
X-Frame-Options-headeren
X-Frame-Options: DENY forhindrer siden i at blive indlæst i nogen iframe. X-Frame-Options: SAMEORIGIN tillader kun indlejring fra sider på samme oprindelse. Indstil denne header på serversiden på alle sider, der kræver godkendelse, for at forhindre klik-kapring.
Content-Security-Policy frame-ancestors
Content-Security-Policy: frame-ancestors 'none' er den moderne og mere fleksible erstatning for X-Frame-Options: DENY. frame-ancestors 'self' erstatter SAMEORIGIN. frame-ancestors kan også tillade specifikke betroede oprindelser: frame-ancestors https://trusted.example.com.
JavaScript-baseret frame-brydning
Ældre teknikker til at bryde ud af frames brugte JavaScript. De besejres let af sandbox-attributten, som blokerer scriptet, der forsøger at bryde ud af framen. Brug altid headers på serversiden (X-Frame-Options eller CSP frame-ancestors) — JavaScript-baseret frame-brydning er ikke pålidelig.
Hvornår indlejring bør tillades
Legitime anvendelser af indlejring: indlejring af dit eget indhold på din egen oprindelse (SAMEORIGIN) eller tilladelse af, at en bestemt partner indlejrer din widget (frame-ancestors med en specifik oprindelse). Udform politikken, så den tillader disse tilfælde og afviser alle andre.
Kombineret tilgang
Indstil både X-Frame-Options (til ældre browsere) og CSP frame-ancestors (til moderne browsere) for størst mulig dækning. Når begge er til stede, har frame-ancestors forrang i browsere, der understøtter CSP. Ved at sende begge sikrer du beskyttelse mod klik-kapring på tværs af alle brugeragenter.
Risici ved same-origin-iframes
Selv iframes fra samme oprindelse kan udgøre risici: et lagret XSS-angreb på en indlejret side kan få adgang til den overordnede side via parent.document, hvis de har samme oprindelse. Brug sandbox uden allow-same-origin til iframes fra samme oprindelse, der ikke har brug for adgang til den overordnede side, for at begrænse skaden fra sårbarheder i det indlejrede indhold.
Test af din beskyttelse
Kontrollér beskyttelsen mod klik-kapring: Brug browserens netværksfane til at kontrollere svarheadere for X-Frame-Options eller CSP frame-ancestors. Værktøjer som securityheaders.com analyserer headere. Opret en test-HTML-side med en iframe, der peger på dit site, og kontrollér, at den ikke kan indlæses.
Tredjepartsindlejringer
Når du indlejrer tredjepartsindhold (YouTube, Google Maps), er du den side, der foretager indlejringen — kontrollér, at den indlejrede tjeneste tillader indlejring i sin egen X-Frame-Options-politik. Du kan ikke indlejre et site, der forhindrer indlejring — det er tilsigtet og beskytter brugerne af den indlejrede tjeneste.
CSP frame-ancestors i metatags
I modsætning til de fleste CSP-direktiver kan frame-ancestors ikke angives via et HTTP-equiv-meta-tag — det skal leveres som en HTTP-svarheader. Det sikrer, at angribere ikke kan fjerne beskyttelsen ved at manipulere den indlejrede HTML, før browseren læser metatags.
Videnstest
Hvorfor er JavaScript-kode til at bryde ud af frames et upålideligt forsvar mod klik-kapring?
Opsummering
Klik-kapring indlejrer godkendte sider i gennemsigtige iframes for at kapre klik. Beskyttelse: headers på serversiden med X-Frame-Options: DENY eller CSP frame-ancestors: none. Indstil begge for dækning på tværs af browsere. JavaScript-baseret frame-brydning er upålidelig — brug altid HTTP-headere. frame-ancestors giver mulighed for detaljerede tilladelseslister over betroede oprindelser, hvilket X-Frame-Options ikke kan.
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 “iframe-sikkerhed: clickjacking og X-Frame-Options” gratis?
Ja — alle 3 lektioner i læringssporet HTML Academy, inklusive “iframe-sikkerhed: clickjacking og X-Frame-Options”, 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 “iframe-sikkerhed: clickjacking og X-Frame-Options”?
Forebyg clickjacking-angreb med X-Frame-Options og CSP 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 2 af 4.
Hvor lang tid tager lektionen “iframe-sikkerhed: clickjacking og X-Frame-Options”?
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
- iframe-elementet: src og sandbox
- iframe-sikkerhed: clickjacking og X-Frame-Options
- Elementerne embed og object
- Lazy loading af iframes