Skip to main content

Förstå de nya "IFRAME" -elementen i HTML5

DevBytes: Web Components - HTML Imports (Juni 2026)

DevBytes: Web Components - HTML Imports (Juni 2026)
Anonim

Elementet låter dig bädda in andra webbsidor direkt i din webbsida. Men när du använder iframes finns det några säkerhets- och designproblem som inte tagits upp i HTML 4.01. HTML5 ger tre nya attribut till det här elementet för att hjälpa till att hantera dessa problem:

Sandkassens attribut

De sandlåda attribut av IFRAME elementet är en mycket användbar säkerhetsfunktion för iframes. När du placerar den i en IFRAME element, instruerar du användaragenten att inte tillåta funktioner som kan medföra en säkerhetsrisk för webbplatsen och dess användare.

Till exempel:

sandlåda = "" >

Berätta att webbläsaren inte vill tillåta alla funktioner som kan vara en säkerhetsrisk. Speciellt är plugins inte tillåtna. Blanketter kan inte lämnas in. Skript kommer inte att köras och länkar utanför IFRAME är inte tillåten. Slutligen är inte tillgång till cookies, lokal lagring och andra sidor på samma domän (ursprung) tillåtna.

Sedan använder du sandlåda nyckelordsvärden, du kan aktivera några av funktionerna igen. Dessa sökord är:

  • tillåter-former-Allt formulär inlämning
  • allow-samma ursprung-Alla skript för att komma åt innehåll som cookies från samma ursprungsdomein
  • tillåter-scripts-Alla skript att springa i detta IFRAME
  • allow-top-navigation-Allå IFRAME länkar och skript till _topp mål

Det är inte en bra idé att ställa in båda tillåter-scripts och allow-samma ursprung nyckelord tillsammans på samma sätt IFRAME. Om du gör det kan den inbäddade sidan helt ta bort sandlåda attribut, negativa eventuella säkerhetsfördelar.

Srcdoc attributet

De srcdoc Attribut är ett attribut som ger webbdesignern mer kontroll över iframesna samt mer säkerhet. I stället för att länka till en webbsida på en annan webbadress placerar webbdesignern HTML som ska visas i en IFRAME inuti srcdoc attribut.

Först kan du tänka, "Hur är det här annorlunda än att sätta HTML direkt på sidan?" Och på något sätt är det inte hemskt annorlunda. Men du måste komma ihåg en av funktionerna hos IFRAME element, vilket är att hålla otillförlitliga data separerade från resten av webbplatsen.

Genom att placera HTML som skapas av en otillförlitlig källa, till exempel en blankett, till en IFRAME du kan "sandbox" det otillförlitliga innehållet och visa det fortfarande på sidan. Bloggkommentarer är ett exempel. De flesta bloggar har bara ett begränsat antal HTML-taggar som kommenterare kan använda i sina kommentarer. Men genom att placera dessa kommentarer i en sandlåda IFRAME använda srcdoc Attribut, kommentarerna kan vara mer robusta samtidigt skydda webbplatsen som helhet.

Säkerhet och iframes

Ovanstående två attribut ger säkerhet för din IFRAME element, men de är inte bevis på alla skadliga webbplatser. Om den skadliga webbplatsen kan övertyga en användare om att få tillgång till det fientliga innehållet direkt (t.ex. genom att skriva in webbadressen i webbläsaren) kan de fortfarande angripas.

Om möjligt är det bäst att ställa in innehållet i sandboxen IFRAME som den text / html-sandboxed MIME-typ.

Den sömlösa egenskapen

De sömlös Attribut är en booleskt attribut som säger att webbläsaren ska visa IFRAME som om det var en del av moderdokumentet. Om du vill ha din IFRAME att visa sömlöst, bara inkludera detta attribut i elementet:

sömlös >

Men att göra IFRAME sömlös är mer än bara utseendet, det är också hur sidan interagerar med ramen. Till exempel:

  • Länkar i IFRAME kommer att öppnas i moderfönstret, om inte IFRAME sidan har målet _SJÄLV uppsättning.
  • CSS i IFRAME kommer att läggas till i kaskaden av hela dokumentet.
  • Rotselementet i IFRAME sidan anses vara ett barn av IFRAME.
  • Bredden och höjden på IFRAME ställs på samma sätt som hur andra blocknivåelement skulle ställas in.
  • När moderdokumentet ses av ett talåtergivningsverktyg som en skärmläsare, IFRAME skulle läsas utan att meddela det som ett separat dokument.
  • Eventuella skript på moderdokumentet skulle påverka IFRAME dokument på samma sätt. Till exempel, om ett skript listade alla ramar på sidan, länkarna i IFRAME skulle listas också.

Med andra ord, sömlös Attributet gör mycket mer än bara bort gränserna från IFRAME. Om du ska ställa in en IFRAME För att vara sömlös bör du vara mycket säker på innehållet så att du inte lägger till någon säkerhetsrisk för din webbplats genom att bädda in en skadlig webbplats.