Как вставить в HTML iframe: пример использования. Iframe и Frame — что это такое и как лучше использовать фреймы в Html
Как вставить в HTML iframe: пример использования. Iframe и Frame — что это такое и как лучше использовать фреймы в Html
Элемент
Frames
Что же делает
Как вставить страницу в страницу HTML
? Для этого нужно использовать
Отображение
Display block.
Пример кода
Мощный, но легкий в использовании
Еще в старые недобрые времена веб-дизайна было много элементов, портящих жизнь каждого разработчика. Они почти всегда были плохим подходом к дизайну. К счастью, элемент был объявлен устаревшим в HTML5
. Но
Сходства и различия
Оба этих элемента позволяют создать отдельный HTML-документ
. Ссылка на содержимое документа, на который ссылается текущая веб-страница, указывается в атрибуте src
.
Основное различие между
Видео явно на HTML
странице, а не на какой-то отдельной панели. элемент сломал эту парадигму и позволил документу осуществлять контроль над окном браузера, разбив его на несколько мелких панелей (фреймов
), каждая из которых отображает отдельный документ. Все другие различия между и вытекают из этого основного различия.
Не переделывайте макеты на основе фреймов с помощью iframe
Когда-нибудь вам может попасться задача по обновлению старого сайта, который был построен с использованием фреймов. Возможно, вы захотите использовать и фиксированную ширину макета, чтобы воссоздать тот же кошмар из независимых панелей и подокон. Но вы не сможете использовать атрибут target
, чтобы открыть ссылку в отдельном фрейме. Вы можете начать искать решения на JavaScript
. Пожалуйста, не делайте этого.
Удачное (и ужасное) применение
Существует несколько допустимых вариантов использования для создания HTML
страницы:
встраивание стороннего медиа контента;
встраивание собственного медиа контента через кроссплатформенный документ;
встраивание примеров кода;
встраивание сторонних «апплетов
» в качестве форм оплаты.
А вот некоторые ужасные варианты использования :
Фотогалерея;
форум или чат.
Если вам нужно встроить независимые, уже существующие HTML-документы
в текущий, используйте . Если же вы строите все с нуля, нет никаких причин разбивать дизайн страницы на несколько самостоятельных документов. Особенно если они на самом деле не являются независимыми частями контента.
Задает ряд ограничений на контент, загружаемый во фрейм. Задается перед тем, как создать HTML страницу.
scrolling
yes no auto
Определяет показывать скроллы в фрейме или нет. Является устаревшим в HTML5. Вместо него используйте CSS.
Name
название
Задает имя фрейма.
Align
left right top
middle bottom
Определяет выравнивание фрейма относительно окружающих элементов. Является устаревшим. Вместо него используйте CSS.
frameborder
yes (или 1)
no
Используется для включения отображения границы вокруг фрейма. Является устаревшим в HTML5. Вместо него используйте CSS.
longdesc
URL
Используется, чтобы указать URL-адрес страницы, которая содержит длинное описание содержания фрейма. Является устаревшим. Вместо него используйте CSS.
marginwidth
пиксели
Используется для контроля ширины отступа от содержания до границы фрейма. Является устаревшим. Вместо него используйте CSS.
src
URL
Определяет URL-адрес документа для отображения в IFRAME.
vspace
пиксели
Устанавливает вертикальные отступы от фрейма до окружающего контента. Является устаревшим. Вместо него используйте CSS.
width
пиксели %
Определяет ширину фрейма на HTML странице.
Данная публикация представляет собой перевод статьи «
» , подготовленной дружной командой проекта
Одним из наиболее частых способов заражения компьютера посетителей сайтов является использование уязвимости, связанной с переполнением буферов браузеров пользователей. Рецепт достаточно прост. Злоумышленники внедряют вредоносный код вставкой iframe на страницы сайта и пытаются загрузить на компьютер ничего не подозревающего пользователя вредоносные файлы. Обнаружить подобные вредоносные врезки на ваших сайтах достаточно легко. Стоит лишь обратить внимание на фрагменты кода, в которых используется подключение iframe. Такие вставки могут быть как в HTML, так и в PHP файлах.
Злоумышленники почти всегда пытаются максимально скрыть от владельцев использование вредоносных ставок, скрывая их визуально для пользователей ресурса и обфусцируя (запутывая) свой код.
Скрытие iframe вставок от глаз пользователей
Для маскировки вредоносной вставки хакеры в большинстве случаев применяют один и тот же метод раз за разом - выставляют свойства тега так, чтобы он не отображался на странице, но содержался в ее коде. Чаще всего, выставляется нулевая или однопикселевая ширина и длина: width="1px", height="1px".
Например, вредоносный код может выглядеть так:
Однако, часто такой маскировкой хакеры не ограничиваются, дополняя сокрытие более изощренными приемами, способными сбить с толку и усложнить поиск и устранение даже продвинутым программистам.
Обфускация
Это один из наиболее часто встречаемых способов защиты кода в программировании на неструктурированных языках (таких, как, например, PHP). Фактически, все шифрование заключается в самом перепутывании/запутывании кода за счет изменения имен переменных и других элементов. Как результат - распознать признаки вредоносности в запутанном коде достаточно тяжело и возможно лишь по косвенным признакам использования в явном виде специальных JS (JavaScript) функций, используемых как раз для обфускации: unescape
, fromCharCode
.
Однако, обнаружение обфусцированного кода на сайте не означает однозначной его вредоносности или легкости устранения. Нужно понимать, что, во-первых, злоумышленники могли обфусцировать код, захватив еще и часть рабочего кода сайта. В таком случае, при попытке вырезания зашифрованного фрагмента вы рискуете обрушить ваш ресурс. Во-вторых, обфусцированный код может не быть вредоносным, а лишь являться следствием работы вашей CMS или отдельных ее компонентов, а также, установленных вами дополнительных модулей.
В любом случае, если вы столкнулись с подозрительным обфусцированным кодом, нужно действовать с максимальной аккуратность.
Прочие признаки заражения
Если вы сомневаетесь, является ли найденный вами код вредоносным, то можно попробовать проанализировать косвенные признаки. При наличии большого числа файлов на вашем сайте, вы можете обратить внимание на дату и время последнего изменения файлов. В случае, если вы хорошо знаете сценарии работы своей CMS с файлами, то можете присмотреться к файлам, измененным в одну дату в одно и то же время, или с изменениями, идущими с одинаковым интервалом времени, например, 1 секунда.
В случае, если вы являетесь продвинутым программистом, то можете написать скрипт, проверяющий наличии обнаруженного вами типа вставок на всех файлах вашего сайта. Если вы еще более продвинуты - можете заставить скрипт вырезать вставки, однако, всегда нужно быть аккуратным.
Альтернативные методы
Мы рекомендуем вам использовать сервис Вирусдай для удаления вредоносных вставок на даже в тех случаях, когда вы являетесь продвинутым специалистом. Наш сервис не только содержит множество сигнатур, по которым находит вредоносные коды, но и экономит время! К тому же, стоимость использования Вирусдая для чистки будет, вероятно, намного ниже, чем оплата вашего же рабочего времени. Вы сможете обнаружить и удалить не только iframe вставки, но и множество других угроз. Вероятно, вы сможете найти и автоматически удалить угрозу, приведшую к появлению iframe вставок на вашем сайте, такую, как, например, Шелл.
Команда сервиса Вирусдай.
Хотел начать свой блог с лирики, но выдалась такая неспокойная неделя, что решил поприветствовать Всех статьей по существу. Привет!
А вся неделя прошла в войнах с постоянными взломами моих хостингов и заражением всех JavaScript файлов ifram’ами, а это не много не мало порядка 2500 скриптов и все сайты с вирусами
.
Не успевал я за день очищать все файлы в ручном режиме и менять пароли, как на следующий день происходило всё снова — пароли каким-то образом утекали и скрипты все вновь успешно по FTP троянились.
Пятница недели стала последней каплей и я потратил день на защиту своих серверов:
Настроил на серверах.ftpaccess — ограничив тем самым доступ по фтп к серверам со всех IP кроме своей статики;
Написал скрипт автоудаления из всех файлов.js iframe’ов, вирусов. Итак, по порядку.
Заражение файлов сайта происходит банальной вставкой iframe кода в файлы по ftp, раньше я чаще наблюдал вставки в.php, .html файлы — что приводило к полному падению сайтов, сегодня зловреды стали добрее и стали писать вставки исключительно в файлы с расширением.js — JavaScript. IFRAME вставки пишутся в конец файла и могут быть как в явном виде (легко обнаруживаются антивирусами), так и в кодированном (работа различных iframe крипторов), например:
Весь этот символьный хаос в результате работы JavaScript превращается в легко читающийся HTML код iframe вставки и загружает пользователю сайта тело вируса посредством работы эксплойта. Опираясь на данный минимум теории начнем защищаться от заражения сайтов.
Настройка.ftpaccess — ограничиваем доступ по фтп к серверам
Вирусы, которые грабят ваши пароли от ftp настолько хитры, что антивирусы зачастую бессильны и пароли утекают, как бы Вы не защищались. Предлагаю пойти по другому пути — и просто перекрыть доступ к вашему ftp. Чтобы разрешить доступ по FTP только с определенных IP, разместите в корне своего сервера, папки с сайтов файл.ftpaccess с содержимым:
Allow from xx.xx.xx.xx
Allow from xx.xx.xx.xx
Deny from all
Где xx.xx.xx.xx - это ваш IP, с которого разрешена активность по FTP, всем остальным досвидания.
За выделенным IP звоним провайдеру!
Если все же вы не можете получить выделенный адрес, а имеете динамические адреса, то можно указать диапазон адресов, из которого выдаются IP-адреса вашим интернет-провайдером, например это будет выглядеть так:
Allow 212.32.5.0/26
Allow 158.152.0.0/16
Deny from all
Это позволит ограничить доступ взломщикам к вашим серверам.
Скрипт автоудаления из всех файлов вставок iframe’ов
После того как сервера были защищены, я приступил к написанию скрипта, который сможет проверить сайт на вирусы
и проходил бы по всем папка хостинга, проверяя указанные мной форматы файлов на наличие в содержимом iframe’ов. Результатом работы явился следующий скрипт, который удаляет вставки вредоносного кода из страниц сайта, в конкретном примере из.js скриптов:
Проверка сайта на вирусы часто не выявляет iframe вставки, которые могут включать ссылки на сомнительные сайты, но новая версия WP плагина AntiVirus укажет их.
Iframe вставки сами по себе не являются вредоносным кодом, поэтому зачастую не определяются онлайн-сервисами по проверке сайта на вирусы. С помощью Iframe вставок часто загружают файлы, которые могут располагаться на внешнем ресурсе. Например, этот способ может использоваться для загрузки видеоролика на Ваш сайт с You Tube. Но очень часто iframe вставки применяются злоумышленниками для загрузки на сайт жертвы файлов подозрительного содержания.
Я уже писал, что неоднократно сталкивался с явно зараженными сайтами, но их проверка на ресурсе antivirus-alarm.ru с использованием баз данных ведущих антивирусных разработчиков не выявляла ничего подозрительного. Проверка же на 2ip.ru выдавала наличие подозрительных iframe вставок, но без указания конкретного места в коде, где их можно найти. Так же не указывалось, являются ли эти вставки полезными или вредоносными.
Но с выходом последней версии WP плагина ситуация изменилась. По заверению разработчика этот плагин теперь показывает iframe вставки. А Вы уже сами в состоянии будете определить вредны они или нет. Зная, как выглядит iframe вставка:
в случае, если плагин ее обнаружил, по тому, адрес какого ресурса указан в этой вставке, легко определиться к полезной или вредной ее отнести.
В отличие от антивирусов для компьютеров, которые сами находят и сами удаляют вредоносный код, большинство антивирусов для сайта, такие, как AntiVirus, и только находят подозрительный с их точки зрения код. Решение об его удалении и само удаление проводится пользователем. Причем новичкам, не ориентирующимся в PHP, реально поможет только плагин TAC, предназначенный для проверки темы. Мне известен только один плагин , который не только находит, но и удаляет нехороший код. К сожалению, данный плагин обладает одной неприятной особенностью. Если он не справляется с заражением на сайте, то он блокирует доступ к сайту, не спрашивая но это разрешения.
Поэтому не стоит ставить антивирусные плагины, если с Вашим сайтом ничего подозрительного не происходит. Для профилактичекой проверки сайта на вирусы разумнее использовать онлайн-сервисы, упомянутые выше. Только после того, как на этих сервисах было выявлено нечто подозрительное, можно обратиться к плагинам, которые могут помочь конкретизировать место расположения вредоносного кода. Для этого опять же не у всех хватит квалификации. Новичкам будет проще обратиться за помощью к тех. поддержке хостинга.
Львиная доля сайтов заражается после заражения компьютера хозяина. В результате чего похищаются логин и пароль от админ. панели или от хостинга. И лишь небольшая часть заражается в результате взлома. Поэтому наиважнейшей мерой по защите сайта является поддержание безопасности Вашего ПК. Не стоит забывать, что на компьютере помимо должен стоять хороший .
Здравствуйте, уважаемые читатели блога сайт. Сегодня речь пойдет о фреймах в языке Html. Понятное дело, что начнем мы сначала, а именно с того, что это такое за зверь. Так же поговорим о настоящем (Frame) и будущем (Iframe) этих элементов в языке гипертекстовой разметки текущей версии и в новом стандарте Html 5 при .
В конце статьи, после детального описания процесса создания встроенных фреймов и их классической структуры в Html коде (уже редко используется), мы затронем вопрос актуальности построения сайта на них, а так же обсудим возможные способы их применения в текущий период времени на примере моего блога.
Что это такое и чем отличается Iframe от Frame
Что же это такое? Оказывается, что они могут использоваться не только на сайтах, но и в каких-либо приложениях к программам, но отличаются тем, что окно web страницы или же приложения будет разделено на несколько областей, в каждую из которых загружен какой-то отдельный документ. Причем, эти области фреймов ведут себя не зависимо друг от друга.
Наверное, самый наглядный пример их использования, с которым сталкивались практически все из вас, это так называемые файлы помощи (хелпы), которые имеются у многих программ установленных на вашем компьютере.
В левое окно загружен файл с меню хелпа, а в правом выводится соответствующий выбранному пункту меню документ. Примечательно, что такая структура позволяет не подгружать в левое окно повторно файл с меню при открытии нового документа в правом. Именно в этом и состоит основное преимущество использования фреймов
в Html.
Собственно, само название этих элементов следует трактовать именно как самостоятельное окно. С помощью фреймов у нас появляется возможность разбить одно большое окно на несколько фрагментов, которые в свою очередь могут служить приемниками для отдельных независимых друг от друга документов (страниц, текстов, изображений, видео и т.п.).
Как создается фреймовая структура в языке гипертекстовой разметки? Если говорить про стандарт Html 4.01 (по классификации ), который является основным на текущий момент времени, то для этого используются три элемента — Frame, Frameset и Noframes.
Iframe — встроенный фрейм в стандарте Html 5
Если же говорить про стандарт Html 5 (наше будущее, некоторые элементы которого уже поддерживаются многими браузерами), то там тегов Frame, Frameset и Noframes, а равно и классической фреймовой структуры уже не будет, вместо них предусмотрен один единственный тэг Iframe (встроенный фрейм), о котором мы и поговорим в начале, а потом уже все внимание обратим на классическую схему из версии 4.01, которая сейчас, собственно, и используется.
Iframe в отличии от классики, которая рассмотрена ниже, не требует замены тега Body на теги Frameset. Т.е. этот тег можно будет вставлять на обычные страницы, например, внутри параграфа или в любом другом месте. По своей сути этот элемент очень похож уже на рассмотренный нами тег Img.
Он является строчным с замещаемым контентом, потому что ведет себя в точности как строчный элемент, но вот внутри него отображается посторонний внешний контент
. Таких элементов в языке Html всего четыре — Img, Iframe, Object и Embed. Поэтому наш герой подразумевает наличие внешнего файла, который будет подгружаться в область, размер которой задается с помощью атрибутов этого тега.
Т.о. Iframe является сточным элементом, в который загружается внешний объект (например, видеоролик). А для указания пути до этого файла, который должен подгружаться на странице, служит специальный атрибут Src. Но в отличии от Img элемент Iframe парный, т.е. имеется еще и закрывающий тег
:
В данном примере показан вывод на странице видеоролика с Youtube с помощью Iframe. Для того, чтобы ограничить область фрейма (окна), куда будет подгружаться внешний файл, предусмотрены атрибуты Width и Height
, значения которых задаются в пикселах:
Т.е. этот тег создает область, в которую загружается какой-то внешний объект (не важно, с вашего ли сайта или же с другого ресурса). Ширина и высота области задаются с помощью Width и Height, а в атрибуте Src указывается путь до этого объекта.
Все эти атрибуты элемент Iframe унаследовал от подобных ему строчных тегов с замещаемым контентом (типа уже упомянутого выше Img). Ну, и еще у картинок он взял и атрибуты Hspace и Vspace
, которые позволяют задать отступы от границ фрейма до обтекающего его текста.
Так же показательно, что выравнивание встроенного фрейма осуществляется абсолютно так же, как мы это могли видеть при изучении картинок в Html — . Все тот же Align
, но уже для тега Iframe с возможными значениями Bottom, Top, Middle, Left и Right.
Но этот элемент взял так же и несколько атрибутов от тэга Frame из классической фреймовой структуры, о которой мы очень и очень подробно поговорим ниже по тексту. К таким атрибутам относится Name, значение которого можно использовать в качестве значения для того, чтобы нужный вам документ при переходе по ссылке открывался именно в окне этого фрейма (подробности читайте ниже).
Так же в Iframe из тега Frame перекочевал атрибут Frameborder, который имеет только два значения — либо 0 (рамка вокруг фрейма не отображается), либо 1 (рамка видна). По умолчанию используется значение Frameborder=1, поэтому для ее удаления вам потребуется прописать Frameborder="0":
Из Frame в этот элемент перешел еще и атрибут Scrolling, имеющий по умолчанию значение Auto — полосы прокрутки во фрейме будут появляться по мере необходимости, когда контент будет больше по размеру окна, предназначенного для его отображения.
Ну, и атрибуты Marginwidth и Marginheight тоже перешли из элемента Frame. Они будут подробно рассмотрены ниже по тексту, но в двух словах — они позволяют задать отступ по ширине и высоте от краев фрейма до контента, который в него помещается.
Как я уже упоминал, наглядным примером использования Iframe является :
Вставив Iframe напрямую в web страницу, вы получите вывод ролика с ютуба. Делаем вывод, что этот элемент является помесью строчных элементов с замещаемым контентом и, собственно, классических фреймов, о которых сейчас и пойдет речь.
Фреймы на основе тегов Frame и Frameset — их структура
Итак, создание классической фреймовой структуры начинается с того, что вы прописываете в Html коде вместо открывающего и закрывающего тега Body, который обычно должен присутствовать в любом документе, заменяющий его контейнер на основе элементов Frameset
.
Принципиальным моментом является как раз то, что элемент Body в этом случае использовать нельзя — либо Body (для обычного документа), либо Frameset (при создании фреймовой структуры документа):
Каждый фрейм, который мы с вами формируем внутри главного, создается с помощью отдельного элемента Frame
. Этот тег является одиночным и в нем мы задаем путь до того документа, который должен будет подгружаться в это окно.
Третий элемент, который мы еще с вами не затронули — это Noframes
. Он парный и позволяет написать внутри себя какой-то текст, который будет обработан браузером и отображен на web странице только в том случае, если этот самый браузер (или другое устройство отображения) не поддерживает фреймы. Это может произойти, например, в случае использования какого-нибудь обозревателя для мобильных устройств.
Обычно в Noframes добавляют не только информацию о сложившейся ситуации с невозможностью обработки фреймовой структуры, но и добавляют так же возможность перейти на другие страницы, где можно будет продолжить работу без их использования. Сказать о нем что-то еще трудно, поэтому продолжим.
Получается так, что элемент Frameset, используемый заместо тега Body, занимает все место, которое отведено для области просмотра, а уже внутри этой области будут создаваться фреймы с помощью отдельных элементов Frame. В связи с этим возникает вопрос — как делить область просмотра между отдельными окнами или, другими словами, как задать размер каждого из них.
Делается это с помощью добавления соответствующих атрибутов к элементу Frameset. Их имеется целых два — Cols и Rows
. Cols задает разделение большого окна на вертикальные фреймы или же колонки, а Rows позволяет разделить его на горизонтальные окна или же строки.
Создание структуры на основе Frameset и его атрибутов Cols и Rows
В качестве значений для Cols и Rows Html тега Frameset выступают числа, проставленные через запятую (без пробелов). Эти числа задают пропорции тех окон, которые мы с вами хотим получить в результате. Следовательно, сколько будет написано чисел через запятую в Cols или в Rows, столько у нас фреймов и должно будет получиться в результате.
Например, с помощью такой записи мы получим три вертикальных колонки, которые по ширине будут соответствовать пропорциям 2:5:3.