Atribúty obsahu, bezpečnosti a dizajnu pre IFRAME
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
Atribút sandbox prvku IFRAME je veľmi užitočnou bezpečnostnou funkciou iframe. Keď ho umiestnite do prvku IFRAME, inštruujete používateľského agenta, aby zakázal funkcie, ktoré by mohli ohroziť bezpečnosť webu a jeho používateľov.
Napríklad:
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ť. Skripty sa nebudú spúšťať a odkazy mimo rozhrania IFRAME nie sú povolené. Nakoniec prístup do súborov cookie, miestneho úložiska a iných stránok v rovnakej doméne (pôvode) nie je povolený.
Pomocou hodnôt kľúčových slov karantény môžete znova povoliť niektoré funkcie. Tieto kľúčové slová sú:
- povolené formuláre - odosielanie prostredníctvom tohto formulára
- povoliť skripty s rovnakým pôvodom na prístup k obsahu, ako sú súbory cookie z rovnakej pôvodnej domény
- Allow-scripts - umožňujú spustiť v tomto IFRAME skripty
- allow-top-navigation-zobrazenie odkazov a skriptov IFRAME na cieľ _top
Nie je dobré nastaviť povolené skripty a kľúčové slová s rovnakým pôvodom spolu na tom istom IFRAME. Ak tak urobíte, vložená stránka potom môže úplne odstrániť atribút karantény, čo neguje akékoľvek výhody bezpečnosti.
Atribút srcdoc
Atribút srcdoc je atribút, ktorý dáva webovému dizajnérovi väčšiu kontrolu nad rámecmi iframe, ako aj vyššiu bezpečnosť. Namiesto prepojenia na webovú stránku s inou adresou URL webový návrhár umiestni HTML, ktorý sa má zobraziť v IFRAME vnútri atribútu srcdoc.
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é.
Musíte však pamätať na jednu z funkcií prvku IFRAME, ktorým je zachovanie nedôveryhodných údajov oddelených od ostatných stránok.
Umiestnení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 atribútu srcdoc môžu byť komentáre 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ú zabezpečenie vašich prvkov IFRAME, 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 MIME typ.
Bezšvový atribút
Bezšvový atribút je booleovský atribút, ktorý informuje prehliadač, aby zobrazil IFRAME, akoby bol súčasťou nadradeného dokumentu. Ak chcete, aby sa váš IFRAME zobrazoval bezproblémovo, stačí pridať tento atribút do elementu:
Ale vytváranie bezproblémového IFRAME je viac než len pohľad, ale aj to, ako stránka interaguje s rámom. Napríklad:
- Odkazy v IFRAME sa otvoria v nadradenom okne , pokiaľ stránka IFRAME nemá cieľovú množinu _SELF.
- CSS v IFRAME sa pridá do kaskády celého dokumentu.
- Koreňový prvok stránky IFRAME sa považuje za dieťa IFRAME.
- Šírka a výška IFRAME sa nastavujú podobným spôsobom, ako by sa nastavili iné prvky na úrovni bloku .
- Keď sa nadradený dokument zobrazuje pomocou nástroja na renderovanie reči, ako je čítačka obrazovky, IFRAME sa bude čítať bez toho, aby sa ohlásil ako samostatný dokument.
- Všetky skripty v nadradenom dokumente by mali vplyv na dokument IFRAME rovnakým spôsobom. Napríklad, ak skript zobrazuje všetky rámce na stránke, odkazy na IFRAME budú tiež uvedené.
Inými slovami, hladký atribút má oveľa viac ako len odstránenie hraníc z IFRAME. Ak chcete nastaviť IFRAME, aby ste boli bezproblémové, mali by ste si byť veľmi istí obsahom, aby ste na svoje webové stránky nepridali žiadne bezpečnostné riziko tým, že by ste vložili škodlivý web.