Contingut, seguretat i atributs de disseny per IFRAME
L'element us permet inserir altres pàgines web directament a la vostra pàgina web. Però quan s'utilitzen els iframes hi ha alguns problemes de seguretat i disseny que no es van tractar en HTML 4.01. HTML5 aporta tres nous atributs a aquest element per ajudar a solucionar aquestes qüestions:
L'atribut sandbox
L'atribut Sandbox de l'element IFRAME és una característica de seguretat molt útil dels iframes. Quan ho col·loqueu en un element IFRAME, us indiqueu a l'agent d'usuari que no permeti característiques que poguessin causar un risc de seguretat al lloc i als seus usuaris.
Per exemple:
Indica al navegador que no permeti totes les funcions que puguin suposar un risc de seguretat. Concretament, els complements no són permesos. Els formularis no es poden enviar. Els fitxers secs no s'executaran i els enllaços fora de IFRAME no estan permesos. Finalment, no es permet l'accés a galetes, emmagatzematge local i altres pàgines del mateix domini (origen).
A continuació, utilitzant els valors de paraules clau de sandbox, podeu tornar a activar algunes de les funcions. Aquestes paraules clau són:
- Permet formularis: permet enviar enviaments de formularis
- allow-same-origin-permet que els scripts accedeixin a contingut com a galetes del mateix domini d'origen
- Permet scripts: permet que les seqüències d'ordres s'executin en aquest IFRAME
- permetre la navegació superior: permet els enllaços i les seqüències d'ordres IFRAME a l'objectiu _top
No és una bona idea establir les dues paraules clau de permetre i permetre que les paraules clau d'origen mateix s'uneixin al mateix IFRAME. Si ho feu, la pàgina incrustada pot eliminar l'atribut Sandbox del tot, negant qualsevol avantatge de seguretat.
L'atribut srcdoc
L'atribut srcdoc és un atribut que proporciona al dissenyador web més control sobre els iframes i més seguretat. En lloc d'enllaçar a una pàgina web en un URL diferent, el dissenyador web col·loca l'HTML que es mostrarà en un IFRAME dins l'atribut srcdoc.
Al principi, podria estar pensant: "Com és diferent aquesta manera de posar el codi HTML a la pàgina?" I d'alguna manera, no és gaire diferent.
Però cal tenir en compte una de les funcions de l'element IFRAME, que consisteix a mantenir les dades no confiables separades de la resta del lloc.
Si col·loqueu HTML que sigui creat per una font que no sigui de confiança, com ara un formulari, en un IFRAME, podeu "crear una safata" el contingut que no sigui de confiança i continuar visualitzant-lo a la pàgina. Els comentaris del bloc són un exemple. La majoria dels blocs només tenen un nombre limitat d'etiquetes HTML que els comentaristes poden utilitzar en els seus comentaris. Però si col·loqueu aquests comentaris en un IFRAME sandboxed amb l'atribut srcdoc, els comentaris poden ser més robustos tot i protegir el lloc en general.
Seguretat i Iframes
Els dos atributs anteriors proporcionen seguretat per als elements IFRAME, però no són una prova contra tots els llocs maliciosos. Si el lloc maliciós pot convèncer que un usuari accedeixi directament al contingut hostil (com per exemple escriure l'URL al seu navegador), encara poden atacar-se.
Si és possible, és millor establir el contingut que es troba a l'IFRAME sandboxed com el text / html-sandboxed MIME tipus.
L'atribut sense costures
L'atribut sense cost és un atribut booleà que indica al navegador que mostri l'IFRAME com si formés part del document primari. Si voleu que la vostra IFRAME es mostri sense problemes, simplement incloeu aquest atribut a l'element:
Però fer que IFRAME sigui perfecte sigui més que simplement l'aspecte, també és com interactua la pàgina amb el marc. Per exemple:
- Els enllaços a IFRAME s'obriran a la finestra pare , tret que la pàgina IFRAME tingui el set _SELF objectiu.
- El CSS de IFRAME s'afegirà a la cascada de tot el document.
- L'element arrel de la pàgina IFRAME es considera fill de l'IFRAME.
- L'amplada i l'alçada de IFRAME s'estableixen de manera similar a com s'establirien altres elements de nivell de bloc .
- Quan el document primari es veu mitjançant una eina de representació de veu com un lector de pantalla, es llegirà IFRAME sense anunciar-lo com a document separat.
- Qualsevol scripts del document primari afectaria el document IFRAME de la mateixa manera. Per exemple, si un script mostra tots els marcs de la pàgina, també es mostraran els enllaços de IFRAME.
En altres paraules, l'atribut sense costura fa molt més que simplement eliminar les fronteres de IFRAME. Si configureu un IFRAME per a ser sense problemes, haureu d'estar molt segurs dels continguts perquè no afegiu cap risc de seguretat al vostre lloc web incrustant un lloc maliciós.