Atributos de contido, seguridade e deseño para IFRAME
O elemento permítelle incorporar outras páxinas web directamente na súa páxina web. Pero ao usar iframes hai algúns problemas de seguridade e deseño que non foron abordados en HTML 4.01. HTML5 trae tres novos atributos a este elemento para axudar a resolver estas cuestións:
O atributo sandbox
O atributo sandbox do elemento IFRAME é unha característica de seguridade moi útil dos iframes. Cando o coloca nun elemento IFRAME, está instruindo ao axente de usuário para que non permita características que poidan causar un risco de seguridade para o sitio e os seus usuarios.
Por exemplo:
Indica ao navegador que non admita todas as funcións que poden ser un risco de seguridade. En concreto, non se permiten os complementos. Non se poden enviar os formularios. Os ficheiros non se executarán e as ligazóns externas ao IFRAME non están permitidas. Por último, non se permite o acceso a cookies, almacenamento local e outras páxinas do mesmo dominio (orixe).
A continuación, usando os valores das palabras clave da caixa de area, pode volver activar algunhas das características. Estas palabras clave son:
- Permitir formularios: permitir a presentación de formularios
- Permitir a mesma orixe: permitir scripts para acceder a contido como cookies do mesmo dominio de orixe
- permitir scripts: permitir scripts para executar neste IFRAME
- permitir a navegación superior: permite as ligazóns e as secuencias de comandos IFRAME para o obxectivo _top
Non é unha boa idea establecer tanto os permisos de script como as palabras de permitir a mesma orixe nun mesmo IFRAME. Se fai isto, a páxina incrustada pode eliminar o atributo sandbox por completo, negando os beneficios de seguridade.
O atributo srcdoc
O atributo srcdoc é un atributo que dá ao controlador web máis control sobre os iframes e tamén máis seguridade. En lugar de ligar a unha páxina web nun URL diferente, o deseñador web coloca o HTML que se mostrará nun IFRAME dentro do atributo srcdoc.
Ao principio, podes estar pensando: "Como é que isto é diferente do que poñer o HTML directamente na páxina?" E de certo xeito, non é terriblemente diferente.
Pero ten que ter en conta unha das funcións do elemento IFRAME, que é manter os datos non confiables separados do resto do sitio.
Ao poñer o HTML creado por unha fonte non confiable, como un formulario, nun IFRAME pode "sandbox" o contido non confiable e aínda se visualiza na páxina. Os comentarios de blog son un exemplo. A maioría dos blogs teñen só un número limitado de etiquetas HTML que os comentaristas poden usar nos seus comentarios. Pero ao poñer eses comentarios nun IFRAME sandboxed co atributo srcdoc, os comentarios poden ser máis robustos aínda que protexen o sitio como un todo.
Seguridade e Iframes
Os dous atributos anteriores proporcionan seguridade para os elementos IFRAME, pero non son probas contra todos os sitios maliciosos. Se o sitio malicioso pode convencer a un usuario de acceder directamente ao contido hostil (por exemplo, escribindo o URL no seu navegador) aínda poden ser atacados.
Se é posíbel, é mellor configurar o contido que está en IFRAME como o texto / html-sandboxed MIME.
O atributo sen costura
O atributo sen costura é un atributo booleano que indica ao navegador que mostre o IFRAME como se fose parte do documento principal. Se quere que o IFRAME se amose perfectamente, simplemente inclúa este atributo no elemento:
Pero facer o IFRAME sen problemas é máis que o aspecto, tamén é como a páxina interactúa co cadro. Por exemplo:
- As ligazóns no IFRAME abriranse na xanela matriz , a non ser que a páxina IFRAME teña o _SELF obxectivo establecido.
- CSS na IFRAME engadirase á fervenza de todo o documento.
- O elemento raíz da páxina IFRAME considérase un fillo do IFRAME.
- O ancho e alto do IFRAME están axustados de como se establecerían outros elementos de nivel de bloque .
- Cando o documento principal é visto por unha ferramenta de representación de voz como un lector de pantalla, o IFRAME sería lido sen anuncialo como un documento separado.
- Calquera scripts do documento principal afectará o documento IFRAME do mesmo xeito. Por exemplo, se un script lista todos os cadros na páxina, as ligazóns do IFRAME tamén estarían listadas.
Noutras palabras, o atributo sen costura fai moito máis que simplemente eliminar os bordos do IFRAME. Se vai configurar un IFRAME para ser sinxelo, ten que estar moi seguro do contido para que non engada ningún risco de seguridade ao seu sitio web incrustando un sitio malicioso.