Съдържание, сигурност и дизайн атрибути за IFRAME
Елементът ви позволява да вградите други уеб страници директно във вашата уеб страница. Но при използването на вградени рамки има някои проблеми със сигурността и дизайна, които не са разгледани в HTML 4.01. HTML5 носи три нови атрибута на този елемент, за да помогне за разрешаването на тези опасения:
Атрибутът на пясъчника
Атрибутът "sandbox" на елемента IFRAME е много полезна защитна характеристика на вградените рамки. Когато го поставите в елемент IFRAME, инструктирате агента на потребителя да забрани функции, които биха могли да доведат до риск за сигурността на сайта и неговите потребители.
Например:
Показва на браузъра да забрани всички функции, които биха могли да представляват риск за сигурността. По-конкретно, плъгините са забранени. Формулярите не могат да се подават. Скриптовете няма да се изпълняват и връзките извън IFRAME не се допускат. И накрая, не се допуска достъп до "бисквитки", локални хранилища и други страници на същия домейн (произход).
След това, като използвате стойностите на ключовите думи на пясъчника, можете да активирате отново някои от функциите. Тези ключови думи са:
- разрешителни формуляри - подаване на формуляри
- позволявайте скриптове с един и същ произход за достъп до съдържание като "бисквитки" от един и същи домейн на произход
- позволи-скриптове - да се изпълняват скриптове в този IFRAME
- позволявайте-нагоре-навигация - дайте връзки и скриптове на IFRAME към целта _top
Не е добра идея да зададете едновременно и двете позволителни скриптове и разрешителни ключови думи от един и същи произход заедно със същия IFRAME. Ако направите това, вградената страница може да премахне напълно атрибута на sandbox, като отрича всички предимства на сигурността.
Атрибутът srcdoc
Атрибутът srcdoc е атрибут, който дава на уеб дизайнера по-голям контрол над вградените рамки, както и повече сигурност. Вместо да се свързва с уеб страница с различен URL адрес, уеб дизайнерът поставя HTML, който се показва в IFRAME, вътре в атрибута srcdoc.
Отначало може би си мислите: "Как е това различно от това, да поставите HTML точно в страницата?" И в някои отношения не е ужасно различно.
Но трябва да имате предвид една от функциите на елемента IFRAME, който е да държите невярващите данни отделни от останалата част от сайта.
Чрез поставянето на HTML, създаден от неверен източник, като например формуляр, в IFRAME, можете да "sandbox" невярващото съдържание и да го покажете на страницата. Коментарите в блога са пример. Повечето блогове имат само ограничен брой HTML команди, които коментаторите могат да използват в своите коментари. Но като поставяте тези коментари в sandboxed IFRAME, използвайки атрибута srcdoc, коментарите могат да бъдат по-стабилни, като същевременно защитават сайта като цяло.
Сигурност и вътрешни рамки
Горните два атрибута осигуряват сигурност за вашите IFRAME елементи, но те не са доказателство за всички злонамерени сайтове. Ако злонамереният сайт може да убеди потребителя да осъществява директен достъп до враждебно съдържание (например чрез въвеждане на URL адреса в своя браузър), той все още може да бъде атакуван.
Ако е възможно, най-добре е да зададете съдържанието, което се намира в полето IFRAME, като текстов / html-sandboxed MIME тип.
Безпроблемният атрибут
Безпроблемният атрибут е булев атрибут, който казва на браузъра да покаже IFRAME като че ли е част от родителския документ. Ако искате IFRAME да се показва безпроблемно, просто включете този атрибут в елемента:
Но създаването на IFRAME безпроблемно е нещо повече от външния вид, а също така и взаимодействието на страницата с рамката. Например:
- В прозореца родител ще се отварят връзки в IFRAME, освен ако страницата IFRAME няма зададен _SELF.
- CSS в IFRAME ще бъде добавено към каскадата на целия документ.
- Коренният елемент на страницата IFRAME се счита за дете на IFRAME.
- Широчината и височината на IFRAME се задават по подобен начин на това, как ще бъдат зададени други елементи на ниво блок .
- Когато основният документ се разглежда от инструмент за рентгеново озвучаване като екранен четец, IFRAME ще се чете, без да се обявява като отделен документ.
- Всички скриптове в основния документ биха повлияли на документа IFRAME по същия начин. Например, ако в скрипт са изброени всички кадри в страницата, ще се показват и връзките в IFRAME.
С други думи, безпроблемният атрибут прави много повече от премахването на границите от IFRAME. Ако искате да настроите IFRAME да бъде безпроблемно, трябва да сте много сигурни в съдържанието, така че да не добавяте никакъв риск за сигурността на уебсайта си, като вградите злонамерен сайт.