De iframe element sluit andere webpagina's rechtstreeks in op de huidige pagina. HTML5 introduceert drie nieuwe attributen voor dit element om de beveiligings- en bruikbaarheidsproblemen van HTML4 aan te pakken iframe implementatie.
Het kenmerk 'sandbox'
De zandbak attribuut van de iframe element is een handige beveiligingsfunctie voor iframes. Wanneer je het in een iframe element, verbiedt de user agent functies die een veiligheidsrisico kunnen vormen voor de site en zijn gebruikers.
Bijvoorbeeld:
instrueert de browser om alle functies die een beveiligingsrisico kunnen vormen, uit te schakelen - dus geen plug-ins, formulieren, scripts, uitgaande links, koekjes, lokale opslag en toegang tot pagina's op dezelfde site.
Gebruik vervolgens de zandbak zoekwoordwaarden, schakelt u enkele functies opnieuw in. Deze trefwoorden zijn:
- toestemmingsformulieren: Formulierverzending toestaan.
- dezelfde-oorsprong toestaan: Scripts toegang geven tot inhoud zoals cookies van hetzelfde oorspronkelijke domein.
- toestaan-scripts: toestaan dat scripts in dit IFRAME worden uitgevoerd.
- navigatie naar boven toestaan: Sta de iframe-links en scripts toe aan het "_top" -doel
Stel niet zowel de toestaan-scripts en dezelfde-oorsprong toestaan trefwoorden samen op hetzelfde iframe. Als u dat doet, kan de ingesloten pagina de. verwijderen zandbak attribuut, waardoor de beveiligingsvoordelen teniet worden gedaan.
Het kenmerk 'srcdoc'
De srcdoc attribuut geeft de webdesigner meer controle over de iframes en meer veiligheid. In plaats van te linken naar een webpagina op een andere URL, plaatst de webdesigner de HTML die moet worden weergegeven in een iframe binnen in de srcdoc attribuut.
Door HTML die is gemaakt door een niet-vertrouwde bron, zoals een formulier, in een iframe u kunt de niet-vertrouwde inhoud sandboxen en toch op de pagina weergeven. Blogreacties zijn een voorbeeld. De meeste blogs bieden slechts een beperkt aantal HTML-tags die commentatoren in hun opmerkingen kunnen gebruiken. Maar door die opmerkingen in een sandbox te plaatsen iframe de... gebruiken srcdoc kenmerk, kunnen de opmerkingen robuuster zijn en toch de site als geheel beschermen.
Beveiliging en Iframes
De bovenstaande twee kenmerken bieden beveiliging voor uw iframe elementen, maar ze zijn geen verdediging tegen alle kwaadaardige sites. Als de kwaadwillende site de bezoekers van uw site kan overtuigen om rechtstreeks toegang te krijgen tot de vijandige inhoud (zoals door de URL in hun browser te typen), kunnen ze nog steeds worden aangevallen.
Stel indien mogelijk de inhoud in die zich in de sandbox bevindt iframe als de tekst/html-sandboxed Mime type.
Het 'naadloze' kenmerk
De naadloos attribuut is een booleaans attribuut dat de browser vertelt om de iframe alsof het een onderdeel is van het bovenliggende document. Als je wilt dat je iframe om naadloos weer te geven, hoeft u alleen dit kenmerk in het element op te nemen:
Maar het maken van iframe naadloos is meer dan alleen het uiterlijk, het is ook hoe de pagina samenwerkt met het frame. Wat tips:
- Links in de iframe wordt geopend in het bovenliggende venster, tenzij de iframe pagina heeft het doel "_SELF" ingesteld.
- CSS in de iframe wordt toegevoegd aan de cascade van het hele document.
- Het wortelelement van de iframe pagina wordt beschouwd als een kind van de iframe.
- De breedte en hoogte van de iframe zijn op dezelfde manier ingesteld als hoe andere elementen op blokniveau zou worden ingesteld.
- Wanneer het bovenliggende document wordt bekeken door een hulpmiddel voor het weergeven van spraak, zoals een schermlezer, iframe zou worden gelezen zonder het aan te kondigen als een afzonderlijk document.
Eventuele scripts op het bovenliggende document zouden van invloed zijn op de iframe op dezelfde manier documenteren. Als een script bijvoorbeeld alle frames op de pagina weergeeft, worden de links in de iframe zou ook worden vermeld.
Met andere woorden, de naadloos attribuut doet veel meer dan alleen de randen van de iframe. Als u een gaat instellen iframe om naadloos te zijn, moet u zeer zeker zijn van de inhoud, zodat u geen veiligheidsrisico aan uw website toevoegt door een kwaadaardige site in te sluiten.