Skip to main content

De nieuwe 'IFRAME'-elementen in HTML5 begrijpen

Week 7 (April 2025)

Week 7 (April 2025)
Anonim

Met dit element kunt u andere webpagina's rechtstreeks in uw webpagina insluiten. Maar bij het gebruik van iframes zijn er enkele beveiligings- en ontwerpproblemen die niet zijn behandeld in HTML 4.01. HTML5 voegt drie nieuwe kenmerken toe aan dit element om deze zorgen weg te nemen:

De sandbox-eigenschap

De zandbak attribuut van de IFRAME element is een zeer nuttige beveiligingsfunctie van iframes. Wanneer je het in een plaatst IFRAME element, geeft u de user-agent de opdracht om functies uit te schakelen die een beveiligingsrisico voor de site en zijn gebruikers kunnen veroorzaken.

Bijvoorbeeld:

= zandbak "" >

Laat de browser weten dat alle functies die een beveiligingsrisico kunnen vormen, zijn verboden. Specifiek zijn plug-ins niet toegestaan. Formulieren kunnen niet worden ingediend. Sscripts worden niet uitgevoerd en koppelingen buiten de IFRAME zijn niet toegestaan. Ten slotte is toegang tot cookies, lokale opslag en andere pagina's op hetzelfde domein (oorsprong) niet toegestaan.

Dan, met behulp van de zandbak sleutelwoordwaarden, kunt u sommige functies opnieuw inschakelen. Deze sleutelwoorden zijn:

  • allow-formulieren-Inlegformulier indienen
  • allow-same-oorsprong-Op afstand van scripts om toegang te krijgen tot inhoud zoals cookies uit hetzelfde oorspronkelijke domein
  • allow-scripts-Allow scripts om hierin te draaien IFRAME
  • allow-top-navigatie- de IFRAME links en scripts naar de _top doelwit

Het is geen goed idee om beide in te stellen allow-scripts en allow-same-oorsprong trefwoorden samen op hetzelfde IFRAME. Als u dit doet, kan de ingesloten pagina het volledig verwijderen zandbak attribuut, negeert eventuele beveiligingsvoordelen.

Het srcdoc-kenmerk

De srcdoc kenmerk is een kenmerk dat de webontwerper meer controle geeft over de iframes en meer beveiliging. In plaats van te linken naar een webpagina op een andere URL, plaatst de webontwerper de HTML die moet worden weergegeven in een IFRAME binnen in de srcdoc attribuut.

In eerste instantie denk je misschien: "Hoe is dit anders dan de HTML-code op de juiste manier in de pagina plaatsen?" En in sommige opzichten is het niet erg anders. Maar u moet een van de functies van de IFRAME element, dat is om niet-vertrouwde gegevens gescheiden te houden van de rest van de site.

Door HTML te plaatsen die is gemaakt door een niet-vertrouwde bron, zoals een formulier, in een IFRAME je kunt de niet-vertrouwde inhoud "sandboxen" en deze nog steeds op de pagina weergeven. Blogreacties zijn een voorbeeld. De meeste blogs hebben slechts een beperkt aantal HTML-tags die commentatoren in hun opmerkingen kunnen gebruiken. Maar door deze opmerkingen in een sandbox te plaatsen IFRAME de … gebruiken srcdoc attribuut, de reacties kunnen robuuster zijn terwijl de site als geheel nog steeds wordt beschermd.

Beveiliging en Iframes

De bovenstaande twee kenmerken bieden beveiliging voor uw IFRAME elementen, maar ze zijn niet bestand tegen alle kwaadwillende sites. Als de kwaadwillende site een gebruiker kan overtuigen om rechtstreeks toegang te krijgen tot de vijandige inhoud (bijvoorbeeld door de URL in hun browser te typen), kunnen ze nog steeds worden aangevallen.

Indien mogelijk is het het beste om de inhoud in de sandbox in te stellen IFRAME als de text / html-sandboxed Mime type.

Het naadloze kenmerk

De naadloos attribuut is een booleaans attribuut dat de browser opdracht geeft het IFRAME alsof het een onderdeel was van het bovenliggende document. Als je je wilt IFRAME om naadloos weer te geven, neemt u dit kenmerk gewoon op in het element:

naadloos >

Maar het maken van de IFRAME naadloos is meer dan alleen de look, het is ook hoe de pagina interageert met het frame. Bijvoorbeeld:

  • Links in de IFRAME wordt geopend in het bovenliggende venster, tenzij de IFRAME pagina heeft het doel _ZELF te stellen.
  • CSS in de IFRAME wordt toegevoegd aan de cascade van het hele document.
  • Het root-element van de IFRAME pagina wordt beschouwd als een kind van de IFRAME.
  • De breedte en hoogte van de IFRAME zijn ingesteld op een vergelijkbare manier als hoe andere elementen op blokniveau zouden worden ingesteld.
  • Wanneer het bovenliggende document wordt bekeken door een spraakweergave-instrument zoals een schermlezer, de IFRAME zou worden gelezen zonder het als een afzonderlijk document aan te kondigen.
  • Alle scripts op het bovenliggende document zouden van invloed zijn op de IFRAME document op dezelfde manier. Als een script bijvoorbeeld alle frames op de pagina heeft vermeld, zijn de links in de IFRAME zou ook worden vermeld.

Met andere woorden, de naadloos kenmerk doet veel meer dan alleen de randen verwijderen uit de IFRAME. Als je een gaat instellen IFRAME om naadloos te zijn, zou u zeer zeker van de inhoud moeten zijn zodat u geen veiligheidsrisico aan uw website toevoegt door een kwaadwillende site in te sluiten.