Як правильно виглядає HTML код iframe. Вставка iFrame у матеріал Joomla
Одним із найчастіших способів зараження комп'ютера відвідувачів сайтів є використання вразливості, пов'язаної з переповненням буферів браузерів користувачів. Рецепт досить простий. Зловмисники впроваджують шкідливий код вставкою iframe на сторінки сайту і намагаються завантажити на комп'ютер шкідливі файли, які нічого не підозрюють. Виявити такі шкідливі врізки на ваших сайтах досить легко. Варто лише звернути увагу на фрагменти коду, в яких використовується підключення iframe. Такі вставки можуть бути як у HTML, так і у PHP файлах.
Зловмисники майже завжди намагаються максимально приховати від власників використання шкідливих ставок, приховуючи їх візуально для користувачів ресурсу та обфузуючи (заплутуючи) свій код.
Приховування iframe вставок від очей користувачів
Для маскування шкідливої вставки хакери в більшості випадків застосовують один і той же метод щоразу - виставляють властивості тега так, щоб він не відображався на сторінці, але містився в її коді. Найчастіше виставляється нульова або однопіксельна ширина і довжина: width="1px", height="1px".
Наприклад, шкідливий код може виглядати так:
Однак, часто таким маскуванням хакери не обмежуються, доповнюючи приховування більш витонченими прийомами, здатними спантеличити і ускладнити пошук і усунення навіть просунутим програмістам.
Обфускація
Це один із найбільш часто зустрічаються способів захисту коду в програмуванні неструктурованими мовами (таких, як, наприклад, PHP). Фактично все шифрування полягає в самому переплутуванні/заплутуванні коду за рахунок зміни імен змінних та інших елементів. Як результат - розпізнати ознаки шкідливості в заплутаному коді досить важко і можливо лише за непрямими ознаками використання у явному вигляді спеціальних JS (JavaScript) функцій, що використовуються якраз для обфускації: unescape, відCharCode.
Однак, виявлення обфусцированного коду на сайті не означає однозначної його шкідливості або легкості усунення. Потрібно розуміти, що, по-перше, зловмисники могли обфуцювати код, захопивши ще частину робочого коду сайту. У такому разі, при спробі вирізання зашифрованого фрагмента ви ризикуєте обрушити ваш ресурс. По-друге, обфусцированный код може бути шкідливим, лише бути наслідком роботи вашої CMS чи окремих її компонентів, і навіть, встановлених вами додаткових модулів.
У будь-якому випадку, якщо ви зіткнулися з підозрілим обфусцованим кодом, потрібно діяти з максимальною акуратністю.
Інші ознаки зараження
Якщо ви сумніваєтеся, чи є знайдений вами код шкідливим, можна спробувати проаналізувати непрямі ознаки. За наявності великої кількості файлів на вашому сайті, ви можете звернути увагу на дату та час останньої зміни файлів. У випадку, якщо ви добре знаєте сценарії роботи своєї CMS з файлами, можете придивитися до файлів, змінених в одну дату в один і той же час, або зі змінами, що йдуть з однаковим інтервалом часу, наприклад, 1 секунда.
У випадку, якщо ви є просунутим програмістом, то можете написати скрипт, який перевіряє наявність виявленого вами типу вставок на всіх файлах вашого сайту. Якщо ви ще більш просунуті - можете змусити скрипт вирізати вставки, проте завжди потрібно бути акуратним.
Альтернативні методи
Ми рекомендуємо вам використовувати сервіс Вірусдай для видалення шкідливих вставок навіть у тих випадках, коли ви є просунутим фахівцем. Наш сервіс не тільки містить безліч сигнатур, якими знаходить шкідливі коди, але й економить час! До того ж, вартість використання Вірусдаю для чищення буде, ймовірно, набагато нижчою, ніж оплата вашого ж робочого часу. Ви зможете виявити та видалити не тільки iframe вставки, але й безліч інших загроз. Ймовірно, ви зможете знайти та автоматично видалити загрозу, що призвела до появи iframe вставок на вашому сайті, таку, як, наприклад, Шелл.
Команда сервісу Вірусдай.
Тег
Тег
Синтаксис
...
Параметри
align Визначає як кадр вирівнюватиметься по краю, а також спосіб обтікання його текстом. frameborder Встановлює, відображати кордон навколо кадру чи ні. height Висота кадру. hspace Горизонтальний відступ від кадру до контенту. ім'я кадру. scrolling Спосіб відображення смуги прокручування у кадрі. src Шлях до файлу, вміст якого завантажуватиметься у кадр. vspace Вертикальний відступ від кадру до контенту. width Ширина кадру.
Закриваючий тег
Обов'язковий.
Приклад 1. Використання тега
Тег IFRAME
Ваш браузер не підтримує плаваючі кадри!
Опис параметрів тега
Параметр ALIGN
Опис
Для плаваючого кадру можна вказати його положення на веб-сторінці або встановити спосіб обтікання текстом або іншими елементами веб-сторінки. Спосіб вирівнювання задається параметром align тега
.
Синтаксис
...
Аргументи
absmiddle Вирівнювання середини кадру по середині поточного рядка. baseline Вирівнювання кадру по базовій лінії поточного рядка. bottom Вирівнювання нижньої межі кадру по навколишньому тексту. left Вирівнює кадр по лівому краю вікна. middle Вирівнювання середини кадру базової лінії поточного рядка. right Вирівнює кадр по правому краю вікна. texttop Верхня межа кадру вирівнюється за найвищим текстовим елементом поточного рядка. top Верхня межа кадру вирівнюється за найвищим елементом поточного рядка.
Найбільш популярні параметри - left і right, що створюють обтікання тексту навколо кадру. Щоб текст не прилягав до вмісту кадру, рекомендується в тезі додати параметр hspace і vspace , що задають відстань до тексту пікселів.
Значення за замовчуванням
Приклад 2. Вирівнювання плаваючого кадру
Тег IFRAME, параметр align
Lorem ipsum dolor sit amet, consectetuer adipiscing elit...
Параметр FRAMEBORDER
Опис
За умовчанням навколо кадру малюється рамка з ефектом тривимірності. Щоб її приховати застосовується параметр frameborder.
Синтаксис
... ...
Аргументи
yes (або 1) Відображає рамку навколо кадру. no (або 0) Приховує рамку навколо кадру.
Значення за замовчуванням
Приклад 3. Приховування вихідної рамки навколо кадру
Тег IFRAME, параметр frameborder
Параметр HEIGHT та WIDTH
Опис
Для зміни розмірів кадру засобами HTML передбачені параметри width і height. Дозволяється використовувати значення у пікселах або відсотках. Якщо встановлено процентний запис, то розміри кадру обчислюються щодо батьківського елемента — контейнера, де знаходиться тег . У разі відсутності батьківського контейнера, як його виступає вікно браузера. Іншими словами, width="100%" означає, що кадр буде займати всю ширину веб-сторінки.
Якщо значення висоти або ширини не задано, то кадр автоматично приймає розмір 300 х 150 пікселів.
Синтаксис
... ...
Аргументи
Будь-яке ціле позитивне число у пікселах чи відсотках.
Значення за замовчуванням
width - 300 пікселів, height - 150 пікселів.
Приклад 4. Ширина та висота кадру
Тег IFRAME, параметр width
Параметр HSPACE та VSPACE
HTML:
3.2
4
XHTML:
1.0
1.1
Опис
Для будь-якого кадру можна задати невидимі відступи по горизонталі та вертикалі за допомогою, відповідно, параметрів hspace та vspace. Особливо це актуально під час обтікання вмісту кадру текстом. У цьому випадку, щоб текст не «наїжджав» щільно на межу кадру, необхідно довкола нього додати порожній простір.
Синтаксис
... ...
Аргументи
Будь-яке ціле позитивне число пікселів.
Значення за замовчуванням
Приклад 5. Поля навколо кадру
Тег IFRAME, параметр hspace
Параметр NAME
Опис
У звичайному HTML-документі під час переходу за посиланням у вікні браузера поточний документ замінюється новим. Щоб направити вміст у кадр, він повинен мати унікальне ім'я, яке задається атрибутом name . У цьому випадку під час створення посилання у тега потрібно вказати параметр target , як значення якого виступає ім'я кадру.
Синтаксис
...
Аргументи
Для вказівки імені використовується набір символів, включаючи цифри та літери. При зверненні до кадру на ім'я дотримуйтесь те саме написання, що й у параметрі name .
Значення за замовчуванням
Тег IFRAME, параметр name
Чебурашка
Крокодил Гена
Шапокляк
Параметр SCROLLING
Опис
Якщо вміст кадру не міститься у відведених розмірах, автоматично з'являються смуги прокручування для перегляду інформації. У деяких випадках смуги прокручування порушують дизайн веб-сторінки, тому від них можна відмовитися. Для керування відображенням смуг прокручування використовується параметр scrolling.
Синтаксис
...
Аргументи
auto Смуги прокручування додаються браузером лише за потребою, у тому випадку, коли вміст кадру перевищує його видиму частину. no Забороняє відображення смуг прокручування. yes Завжди викликає появу смуг прокручування, незалежно від обсягу інформації.
Значення за замовчуванням
Приклад 7. Приховування смуг прокручування
Тег IFRAME, параметр scrolling
Параметр SRC
Опис
Вказує адресу файлу (URL), який завантажуватиметься у кадр. Це може бути HTML-документ, зображення чи серверна програма. Допустимо використовувати не тільки шлях до файлу, але також ім'я JavaScript, яке повертає значення.
Синтаксис
...
Аргументи
Як значення приймається повний чи відносний шлях до файлу.
Значення за замовчуванням
Приклад 8. Шлях до файлу
Тег IFRAME, параметр src
Теги кадрів
FRAME визначає властивості окремого кадру, куди ділиться вікно браузера.
FRAMESET визначає структуру кадрів на веб-сторінці. Фрейми розділяють вікно браузера на окремі області, розташовані впритул один до одного. У кожну з таких областей завантажується самостійна веб-сторінка, яка визначається за допомогою тега FRAME.
IFRAME створює плаваючий кадр, який знаходиться всередині звичайного документа, він дозволяє завантажувати в область заданих розмірів будь-які інші незалежні документи.
NOFRAMES відображається у браузері, коли він не підтримує кадри та не вміє їх інтерпретувати. Браузери, які працюють з кадрами, повністю ігнорують вміст NOFRAMES.
Всім привіт. У html є один цікавий тег, за допомогою якого можна на свою веб-сторінку вставити іншу, причому вона виглядатиме так, начебто вшита у вашу. Це стаття про те, як вставити в HTML iframe з прикладом.
Можливості iframe
Отже, за допомогою цього парного тега можна вставити до своєї статті сторінку з будь-якого веб-сайту в інтернеті. Давайте розглянемо такий фрагмент коду:
Як бачите, всі параметри вставки в атрибутах тега. Про перші два, я думаю, вам пояснювати нічого не треба - це ширина і висота нашого кадру, в якому буде потрібна сторінка. Розміри потрібно вибирати виходячи з ширини вашого контентного блоку.
Адреса потрібної сторінки задається в атрибуті src. У ньому потрібно написати повну адресу до сайту. Наступний атрибут – ім'я кадру. Тут можна написати довільне значення. Нарешті, scrolling відповідає за появу смуг прокручування, а його значення auto робить так, що прокручування з'явиться лише за необхідності. Також тут можна задати значення no. У цьому випадку смуги прокручування не з'являтимуться, але тоді й прокрутити сторінку не можна буде — ви зможете лише переглянути її фрагмент, на скільки вистачить заданої висоти.
Інші параметри при необхідності ви можете встановити через css. Наприклад, це можуть бути відступи чи рамка.
Приклад вставки iframe у html
У прикладі коду, який я наводив вище, вам потрібно лише змінити адресу сторінки на свою, а також розміри кадру, якщо це необхідно. Ось приклад:
Зараз у цій статті з'явився веб-сервіс, в якому ви можете шляхом переміщення курсору по екрану вибирати кольори, а при натисканні вони зберігаються. Я часто використовую цей корисний сайт, коли експериментую зі створенням гарних меню, кнопок та форм.
Ось так просто можна вставити інший сайт на свою сторінку. Можливо, у зв'язку з цим у вас з'явиться багато своїх ідей вставки iframe до себе. Головне, що ви знаєте, як це робиться.
Здрастуйте, шановні читачі блогу сайт. Сьогодні мова піде про кадри у мові 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. Він парний і дозволяє написати в собі якийсь текст, який буде оброблений браузером і відображений на веб-сторінці тільки в тому випадку, якщо цей браузер (або інший пристрій відображення) не підтримує кадри. Це може статися, наприклад, у разі використання будь-якого браузера для мобільних пристроїв.
Зазвичай у Noframes додають не тільки інформацію про ситуацію, що склалася з неможливістю обробки фреймової структури, але і додають так само можливість перейти на інші сторінки, де можна буде продовжити роботу без їх використання. Сказати про нього ще важко, тому продовжимо.
Виходить так, що елемент Frameset, який використовується замість тега Body, займає все місце, яке відведено для області перегляду, а вже всередині цієї області створюватимуться кадри за допомогою окремих елементів Frame. У зв'язку з цим постає питання — як ділити область перегляду між окремими вікнами чи, іншими словами, як задати розмір кожного їх.
Це робиться за допомогою додавання відповідних атрибутів до елемента Frameset. Їх є цілих два - Cols та Rows. Cols задає поділ великого вікна на вертикальні фрейми або колонки, а Rows дозволяє розділити його на горизонтальні вікна або рядки.
Створення структури на основі Frameset та його атрибутів Cols та Rows
Як значення для Cols і Rows Html тега Frameset виступають числа, проставлені через кому (без пробілів). Ці числа задають пропорції вікон, які ми з вами хочемо отримати в результаті. Отже, скільки буде написано чисел через кому в Cols або Rows, стільки у нас фреймів і повинно буде вийти в результаті.
Наприклад, за допомогою такого запису ми отримаємо три вертикальні колонки, які за шириною відповідатимуть пропорціям 2:5:3.