![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Как видно из листинга 1, каждый тег состоит из имени тега (например, HTML), заключенного в угловые скобки. Обратите внимание на последнюю строку листинга - там расположен тег </HTML>, очень похожий на тег в третьей строке документа. В нем содержится косая черта, означающая, что это - конечный тег. Соответственно, тег <HTML> называется начальным тегом. Такие парные теги называются контейнерными, а все, что находится между начальными и конечными тегами называется содержимым контейнера.
Теги, не имеющие парного конечного тега, называются пустыми, или одиночными; соответствующие им элементы называются автономными. В листинге 1 имеется один такой тег <Р>, называемый тегом абзаца, поскольку текст, расположенный вслед за тегом, будет отображаться в браузере в новом абзаце.
Простейший вариант тега - имя, заключенное в угловые скобки, например <HEAD> или <Р>. Для более сложных тегов характерно наличие атрибутов, которые могут иметь конкретные значения, определенные автором для видоизменения функции тега. Например, в теге <HTML LANG="ru" DIR="LTR"> использован атрибут LANG, который задает язык документа HTML (в данном случае "ru" - русский), и атрибут DIR, который задает направление чтения текста, в данном случае "LTR" - слева направо (оказывается, можно и наоборот).
Общая схема построения контейнера HTML имеет следующий вид: <Имя_тега Список_атрибутов> Содержимое контейнера </Имя_тега>
Контейнерные теги вместе с их содержимым, а также одиночные теги обобщенно называются элементами языка HTML. В языке HTML современной версии 4 (спецификация языка представлена на сайте http://www.w3.org) имеется множество элементов, но здесь мы остановимся лишь на тех, которые интересны с точки зрения обсуждаемой темы безопасности.
Тег <OBJECT>
Начиная с первой версии, язык HTML позволял встраивать в документы HTML изображения, аплеты, видеоклипы и другие ресурсы Web. В HTML версии 4 специально для этой цели был создан новый тег <OBJECT>, который претендует на роль универсального средства внедрения в документы HTML произвольных информационных ресурсов и идет на смену другим тегам - <APPLET>, <IMG>, <EMBED> и некоторых других.
Тег <OBJECT> содержит множество атрибутов, часть которых перечислена ниже.
• ID - уникальный идентификатор объекта.
• CLASSID - используется для указания местоположения ресурса, реализующего функции объекта. Например, CLASSID может содержать адрес URL программы-обработчика данных, указанных другим атрибутом - DATA (см. ниже).
• CODEBASE - определяет базовый адрес, относительно которого указываются адреса ресурсов в других атрибутах тега (например, CLASSID, DATA и ARCHIVE). Если атрибут CODEBASE отсутствует, значением по умолчанию является базовый адрес URL текущего документа.
• CODETYPE - определяет тип данных, получаемых при загрузке ресурса, указанного атрибутом CLASSID. Его значениями могут быть, например, "text/html", "image/gif", "video/ropeg", "text/javascript", указывающие, соответственно, на документ HTML, рисунок формата GIF, видеофайл MPEG и сценарий JavaScript.
• DATA - указывает местоположение данных объекта. Например, если объект используется для отображения рисунка, DATA содержит адрес файла с изображением. Его значением является относительный адрес URL, установленный относительно базового адреса, заданного атрибутом CODEBASE.
• ТУРЕ - определяет тип содержимого для данных, задаваемых атрибутом DATA.
• ARCHIVE - содержит разделенный пробелами список адресов URL архивов с ресурсами, требуемыми объекту, в том числе, задаваемые атрибутами CLASSID И DATA.
В большинстве клиентских браузеров имеются встроенные механизмы для воспроизведения основных типов данных, таких как текст, изображения в формате .GIF, шрифты, набор графических элементов. Для воспроизведения же некоторых других типов данных, не поддерживаемых браузерами по умолчанию, они обычно запускают внешние приложения. Тег <OBJECT> как раз и позволяет авторам документов HTML управлять способом воспроизведения данных - либо с помощью внешней программы, либо с помощью некоторой программы, указываемой автором документа HTML. В листинге 2 представлен код HTML с тегом <OBJECT>, примененным для воспроизведения аплета - проигрывателя Microsoft Media Player.
Листинг 2. Пример простого документа HTML
To, что отобразится в диалоге браузера IE 5 при загрузке кода из листинга 2, представлено на Рис. 2.
Рис. 2. Отображение аплета - проигрывателя Windows Media Player
В листинге 2 атрибут CLASSID определяет ресурс, воспроизводимый тегом <OBJECT>. Для этого используется так называемый уникальный идентификатор CLSID, который в системе Windows присваивается каждому аплету, созданному на основе средств программирования аплетов, предложенных и развиваемых фирмой Microsoft.
Идентификаторы CLSID используются в любой программе, построенной на основе технологии OLE (Object Linking and Embedding - Связывание и внедрение объектов). OLE - это общее название объектно-ориентированных технологий Microsoft, с помощью которых одни программы предоставляют свои сервисы другим программам. Вы используете технологию OLE каждый раз, когда, например, перетаскиваете текст из одного текстового документа в другой с помощью буфера обмена Windows. На основе технологии OLE можно, помимо всего прочего, создавать аплеты, которые в этом случае называются элементами ActiveX. Подробнее с технологией OLE можно познакомиться в одном из множества руководств.
Вы, наверное, уже поняли, для чего хакерам может понадобиться тег <OBJECT> - конечно же, для запуска на клиентском компьютере программы, которая обеспечит хакеру достижение своих целей. С помощью трюков, использующих некоторые недостатки системы защиты браузеров Web, это сделать вовсе не трудно, но перед описанием всех этих интересных возможностей опишем последний тег - <IFRAME>.
Тег <IFRAME>
Язык HTML позволяет воспроизводить документы HTML в нескольких областях окна браузера Web; эти области называются фреймами (от английского «frame» - кадр, окно). Фреймы могут представлять собой независимые окна, или же занимать области внутри одного главного окна, деля его на части. Благодаря этому свойству фреймов Web-дизайнеры могут оставлять некоторую информацию документа HTML постоянно видимой в одном фрейме, в то время как остальную информацию воспроизводить в дополнительных фреймах, снабженных средствами прокрутки содержимого.
Тег <IFRAME> позволяет встраивать фреймы непосредственно внутрь текстового фрагмента в документе HTML. В листинге З представлен код HTML с тегом <IFRAME>, который встраивает в текст фрейм, отображающий технические характеристики автомобиля.
Листинг З. Пример встроенного фрейма в документе HTML
Воспроизведение кода HTML из листинга З в окне браузера IE 5 представлено на Рис. З.
Рис. З. Пример документа HTML со встроенным фреймом
На первый взгляд тег <IFRAME>, так же как и отображаемый фрейм, вполне безобидены, однако, как ни странно, тег <IFRAME> служит основой для множества атак, опирающихся на уязвимости системы безопасности браузеров Интернета и почтовых клиентов. Опишем некоторые из них.
Дата публикования: 2014-11-04; Прочитано: 324 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!