Skip to main content

Pochopenie nových prvkov "IFRAME" v jazyku HTML5

Anonim

Prvok umožňuje vkladať iné webové stránky priamo do vašej webovej stránky. Ale pri používaní iframe existujú niektoré problémy s bezpečnosťou a dizajnom, ktoré neboli riešené v HTML 4.01. HTML5 prináša tento prvok tri nové atribúty, ktoré pomáhajú riešiť tieto obavy:

Atribút sandboxu

pieskovisko atribút IFRAME element je veľmi užitočným bezpečnostným prvkom iframe. Keď ho umiestni do IFRAME prvok, inštruujete používateľského agenta, aby zakázal funkcie, ktoré by mohli spôsobiť bezpečnostné riziko pre stránky a ich používateľov.

Napríklad:

pieskovisko = "" >

Upozorňuje na prehliadač, aby zakázal všetky funkcie, ktoré by mohli predstavovať bezpečnostné riziko. Konkrétne sú doplnky zakázané. Formuláre nie je možné odoslať. Scripts nebudú fungovať a odkazy mimo IFRAME nie sú dovolené. Nakoniec prístup do súborov cookie, miestneho úložiska a iných stránok v rovnakej doméne (pôvode) nie je povolený.

Potom pomocou tlačidla pieskovisko hodnoty kľúčových slov, môžete znova povoliť niektoré funkcie. Tieto kľúčové slová sú:

  • umožňujú formy- podanie formulára
  • allow-rovnakého pôvodu-Boľkých skriptov na prístup k obsahu, ako sú súbory cookie z rovnakej domény pôvodu
  • allow-skripty-Allow skripty spustiť v tomto IFRAME
  • allow-top-navigation-Podľa IFRAME odkazy a skripty na _top terč

Nie je dobré nastaviť ako allow-skripty a allow-rovnakého pôvodu kľúčové slová spoločne na tom istom IFRAME, Ak to urobíte, potom vložená stránka môže úplne odstrániť pieskovisko atribút, ktorý neguje akékoľvek bezpečnostné výhody.

Atribút srcdoc

srcdoc atribút je atribút, ktorý dáva webovému dizajnérovi väčšiu kontrolu nad rámecom iframe, ako aj väčšiu bezpečnosť. Namiesto prepojenia s webovou stránkou na inej adrese URL webový návrhár umiestni HTML, ktorý sa má zobraziť v IFRAME vnútri srcdoc atribútov.

Spočiatku môžete premýšľať: "Ako sa to líši od umiestnenia HTML priamo na stránku?" A v niektorých ohľadoch to nie je strašne iné. Ale musíte mať na pamäti jednu z funkcií IFRAME prvkom, ktorým je zachovanie nedôveryhodných údajov oddelených od ostatných stránok.

Umiestením HTML, ktorý je vytvorený nedôveryhodným zdrojom, napríklad formulárom, do IFRAME môžete "sandbox" nedôveryhodný obsah a stále ho zobrazovať na stránke. Komentáre blogu sú príkladom. Väčšina blogov má len obmedzený počet komentárov HTML, ktoré môžu komentátori použiť vo svojich komentároch. Ale uvedením týchto komentárov do sandboxed IFRAME pomocou srcdoc atribút, komentáre môžu byť robustnejšie, zatiaľ čo stále chránia stránky ako celok.

Zabezpečenie a rámcové rámčeky

Vyššie uvedené dva atribúty poskytujú bezpečnosť pre vaše IFRAME prvky, ale nie sú dôkazmi proti všetkým škodlivým stránkam. Ak škodlivá stránka môže presvedčiť používateľa, aby priamo pristupoval k nepriateľskému obsahu (napríklad napísaním adresy URL do svojho prehliadača), môžu byť napadnutí.

Ak je to možné, je najlepšie nastaviť obsah, ktorý je v karanténe IFRAME ako text / html-sandboxed Typ MIME.

Bezšvový atribút

bezproblémový atribút je booleovský atribút, ktorý informuje prehliadač, aby zobrazil IFRAME ako keby bola súčasťou materského dokumentu. Ak chcete svoje IFRAME na zobrazenie bezproblémovo, stačí zahrnúť tento atribút do elementu:

bezproblémový >

Ale robiť IFRAME bezproblémové je viac ako len vzhľad, ale aj to, ako stránka interaguje s rámom. Napríklad:

  • Odkazy v IFRAME sa otvorí v nadradenom okne, ak nie je IFRAME stránka má cieľ _self nastavený.
  • CSS v IFRAME bude pridaný do kaskády celého dokumentu.
  • Koreňový prvok IFRAME stránka sa považuje za dieťa IFRAME.
  • Šírka a výška IFRAME sú nastavené podobným spôsobom, ako by boli nastavené ďalšie prvky na úrovni bloku.
  • Keď je nadradený dokument zobrazený nástrojom renderovania reči ako čítačka obrazovky, IFRAME by sa čítal bez toho, aby sa oznamoval ako samostatný dokument.
  • Všetky skripty v nadradenom dokumente by mali vplyv na IFRAME dokument rovnakým spôsobom. Napríklad, ak skript obsahuje všetky rámce na stránke, odkazy v IFRAME aj v zozname.

Inými slovami, bezproblémový atribút robí oveľa viac ako len odstrániť hranice z IFRAME, Ak chcete nastaviť IFRAME aby ste boli bezproblémový, mali by ste byť veľmi istí, že obsah nebudete pridávať bezpečnostné riziko na svoje webové stránky vložením škodlivého webu.