Руководство по безопасности браузеров (Browser Security Handbook). Глава I 
§ 11. Другие встроенные форматы документов
§ 11. Другие встроенные форматы документов
§12. Контентные плагины
В отличие от небольшого и вполне определенного набора изначально поддерживаемых форматов документов, сфера применения браузерных плагинов очень разнообразна и быстро расширяется. Большинство распространенных плагинов для отображения контента вызываются с помощью тегов <OBJECT> или <EMBED> (или <APPLET> для Java), но могут использоваться и другие типы интеграции.
Распространенные плагины, встраиваемые в страницу сайта, можно разделить на несколько основных категорий:
- Языки веб-программирования. Включает такие технологии, как  Adobe Flash,  Javaили  Microsoft Silverlight, присутствующие на подавляющем большинстве настольных компьютерах. Эти языки, как правило, позволяют выполнять множество сценариев (скриптов), включая доступ к документу верхнего уровня и другой DOM-информации, или способны отправить сетевые запросы на некоторые объекты. Модели безопасности, реализованные этими плагинами обычно отличаются от моделей самого браузера нелогичными или непредусмотренными особенностями. Такие технологии веб-разработки становятся главной целью для проведения атак.  Они также представляют потенциальную угрозу безопасности из-за недостаточной обработки входных данных в популярных плагинах.
- Интегрированные форматы документов, отличные от HTML. Некоторые популярные редакторы документов или средства просмотра, включая  Acrobat Readerи  Microsoft Office, устанавливают плагины для поддержки собственных форматов на HTML-странице или для просмотра содержимого в полноэкранном режиме прямо в браузере. Интересной особенностью этого механизма является то, что многие такие форматы документов позволяют создавать сценарии или предлагают интерактивные функции (например, интерактивные ссылки), что может привести к передаче данных браузеру необычным или непредсказуемым способом. Например, существуют методы для перемещения окна браузера с помощью JavaScript в Url-адресах встроенных в PDF-документы - и этот код будет выполняться в контексте безопасности сайта.
- Языки разметки,  интегрированные в HTML. Языки разметки, такие как  VRML,  VMLили  MathML, также поддерживаются в некоторых браузерах с помощью плагинов, и могут быть встроены в стандартные HTML-документы; они имеют такой же вектор атаки, что и формат XML (см. предыдущий параграф).
- Мультимедийные форматы, обладающие широкими возможностями. Различные плагины  позволяют воспроизводить видео и аудио непосредственно в браузере без открытия окна мультимедийного проигрывателя. Интеграцию плагина в браузер, расширяющие его возможности, предлагают большинство современных медиаплееров, в частности,  Windows Media Player,  QuickTime,  RealPlayerили  VLC. Большинство таких форматов не влияют на безопасность для принимающей стороны, хотя на практике, этот тип интеграции подвержен определенным ошибкам. 
- Специализированные виджеты для манипулирования данным. Они включают в себя функции, такие как  DHTML Editing Controlс CLSID 2D360201-FFF5-11D1-8D03-00A0C959BC0A. Некоторые такие плагины поставляются вместе с Windows и помечаются как безопасные, хотя безопасности уделяется мало внимания.
Общая информация: в некоторых азиатских странах применяются  плагины на основе модуля шифрования, реализованные в виде управляющих элементов ActiveX. 
Одним из наиболее важных свойств безопасности объектов, вложенных в теги, является возможность встраивания произвольных типов файлов, манипулируя заголовками Content-Typeи Content-Disposition. 
Приоритеты  входящих данных для того, чтобы решить, как интерпретировать содержание в различных браузерах, описаны с таблице 13.
Таблица №13
Входной сигнал MSIE6 MSIE7 MSIE8 FF2 FF3 Safari Opera Chrome Android Тип тега и TYPE= / CLASSID=значение #1  #1  #1  #1  #1  #1  #1  #1  n/a Content-Type=значение, если TYPE=не определен игнорировать  игнорировать  игнорировать  игнорировать  игнорировать  игнорировать  игнорировать  игнорировать  n/a Content-Type=значение, если TYPE= отсутствует #2  #2  #2  #2  #2  #2  #2  #2  n/a Сниффинг   контента, если TYPE=не определен игнорировать  игнорировать  игнорировать  игнорировать  игнорировать  игнорировать  игнорировать  игнорировать  n/a Сниффинг   контента, если TYPE=отсутствует игнорировать  игнорировать  игнорировать  игнорировать  игнорировать  (#3)  игнорировать  (#3)  n/a 
Подход по определению обрабатываемых входных данных является проблематичным, поскольку он лишает сервер выбирать определенные ресурсы, которые рассматриваются как интерпретируемый плагином документ в ответ на действия вредоносного стороннего сайта. В сочетании со слабым синтаксическим анализатором в браузерных плагинах это приводит к  старым уязвимостям.  
Примечание: К сожалению, на сегодняшний день нельзя полностью проконтролировать как будет  отображаться управляемый плагином документ. 
Входной сигнал
MSIE6
MSIE7
MSIE8
FF2
FF3
Safari
Opera
Chrome
Android
Тип тега и TYPE= / CLASSID=значение
#1 
#1 
#1 
#1 
#1 
#1 
#1 
#1 
n/a
Content-Type=значение, если TYPE=не определен
игнорировать 
игнорировать 
игнорировать 
игнорировать 
игнорировать 
игнорировать 
игнорировать 
игнорировать 
n/a
Content-Type=значение, если TYPE= отсутствует
#2 
#2 
#2 
#2 
#2 
#2 
#2 
#2 
n/a
Сниффинг   контента, если TYPE=не определен
игнорировать 
игнорировать 
игнорировать 
игнорировать 
игнорировать 
игнорировать 
игнорировать 
игнорировать 
n/a
Сниффинг   контента, если TYPE=отсутствует
игнорировать 
игнорировать 
игнорировать 
игнорировать 
игнорировать 
(#3) 
игнорировать 
(#3) 
n/a
 Другое интересное свойство, которое стоит отметить - это наличие во многих модулях собственных HTTP-стеков и кэширование системы, что позволяет обойти настройки конфиденциальности браузера.
 
		        
		        
		