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 indienenallow-same-oorsprong
-Op afstand van scripts om toegang te krijgen tot inhoud zoals cookies uit hetzelfde oorspronkelijke domeinallow-scripts
-Allow scripts om hierin te draaienIFRAME
allow-top-navigatie
- deIFRAME
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 deIFRAME
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 deIFRAME
. - 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 deIFRAME
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.