Atributy obsahu, zabezpečení a designu pro IFRAME
Prvek umožňuje vkládat jiné webové stránky přímo do webové stránky. Při použití rámců však existují některé problémy týkající se zabezpečení a návrhu, které nebyly řešeny v HTML 4.01. HTML5 přináší tomuto prvku tři nové atributy, které pomáhají řešit tyto obavy:
Atribut karantény
Atribut sandbox prvku IFRAME je velmi užitečná bezpečnostní funkce iframe. Když jej umístíte do prvku IFRAME, instruujete uživatele agentu, aby zakázal funkce, které by mohly ohrozit bezpečnost webu a jeho uživatelů.
Například:
Informuje prohlížeč, aby zakázal všechny funkce, které by mohly představovat bezpečnostní riziko. Konkrétně jsou pluginy zakázány. Formuláře nelze odeslat. Scripts nebudou spouštět a odkazy mimo IFRAME nejsou povoleny. Konečně není povolen přístup k souborům cookie, místnímu úložišti a dalším stránkám ve stejné doméně (původu).
Poté pomocí hodnot klíčových slov karantény můžete některé funkce znovu aktivovat. Tato klíčová slova jsou:
- povolených formulářů - podání formulářů
- povolit skripty stejného původu pro přístup k obsahu, jako jsou soubory cookie ze stejné domény původu
- allow-scripts - umožňují spuštění skriptů v tomto IFRAME
- allow-top-navigation -vypněte odkazy IFRAME a skripty do cíle _top
Není dobré nastavit povolené skripty a klíčová slova s stejným původem společně ve stejném IFRAME. Pokud tak učiníte, vložená stránka pak může zcela odstranit atribut karantény, čímž znemožní výhody zabezpečení.
Atribut srcdoc
Atribut srcdoc je atribut, který dává weboví designéři větší kontrolu nad prvky iframe a také větší bezpečnost. Namísto propojení s webovou stránkou na jinou adresu URL webový návrhář umístí HTML, který má zobrazit v IFRAME uvnitř atributu srcdoc.
Nejprve si můžete přemýšlet: "Jak se to liší od vložení HTML přímo na stránku?" A v některých ohledech to není strašně jiné.
Musíte však mít na paměti jednu z funkcí prvku IFRAME, kterým je udržet nedůvěryhodné údaje odděleně od ostatních stránek.
Umístěním HTML vytvořeného nedůvěryhodným zdrojem, například formuláře, do IFRAME můžete "pískovat" nedůvěryhodný obsah a stále ho zobrazovat na stránce. Komentáře k blogu jsou příkladem. Většina blogů má jen omezený počet komentářů HTML, které mohou komentátoři použít ve svých komentářích. Ale umístěním těchto komentářů do sandboxed IFRAME pomocí atributu srcdoc mohou být komentáře mnohem robustnější a zároveň chrání místo jako celek.
Zabezpečení a rámcové rámečky
Výše uvedené dva atributy poskytují zabezpečení vašim prvkům IFRAME, ale nejsou důkazem proti všem škodlivým webům. Pokud škodlivý web může přesvědčit uživatele k přímému přístupu k nepřátelskému obsahu (například zadáním adresy URL do svého prohlížeče), mohou být stále napadeni.
Pokud je to možné, je nejlepší nastavit obsah, který je v karanténě IFRAME jako text / html-sandboxed MIME typ.
Bezproblémový atribut
Bezproblémový atribut je booleovský atribut, který řekne prohlížeči, aby zobrazil IFRAME jako by byl součástí rodičovského dokumentu. Pokud chcete, aby váš IFRAME hladce zobrazoval, stačí tento prvek zahrnout do prvku:
Ale vytváření bezproblémového IFRAME je víc než jen vzhled, je to také, jak stránka interaguje s rámečkem. Například:
- Odkazy v rozhraní IFRAME se otevře v nadřazeném okně , pokud stránka IFRAME nemá cílovou sadu _SELF.
- CSS v IFRAME bude přidáno do kaskády celého dokumentu.
- Kořenový prvek stránky IFRAME je považován za podřízený IFRAME.
- Šířka a výška IFRAME jsou nastaveny podobně jako u ostatních prvků na úrovni bloku .
- Když je nadřazený dokument zobrazen pomocí nástroje pro vykreslování řeči, jako je čtečka obrazovky, bude IFRAME čten bez oznámení o samostatném dokumentu.
- Všechny skripty v nadřazeném dokumentu by ovlivnily dokument IFRAME stejným způsobem. Například pokud skript uvede všechny rámce na stránce, budou také uvedeny odkazy v IFRAME.
Jinými slovy hladký atribut dělá mnohem víc, než jen odstranit hranice z IFRAME. Pokud chcete nastavit IFRAME tak, aby byl hladký, měli byste být velmi jistí, že obsah nebude obsahovat žádné nebezpečí pro zabezpečení vašeho webu vložením škodlivého webu.