Программный интерфейс подключаемых модулей Netscape (англ. Netscape Plugin Application Programming Interface, NPAPI) — кросс-платформенная архитектура разработки плагинов, поддерживаемая многими браузерами.
Интерфейс был разработан для семейства браузеров Netscape Navigator, начиная с Netscape Navigator 2.0, и в дальнейшем был реализован многими другими браузерами. Однако Internet Explorer не поддерживает этот интерфейс, начиная с версии 5.5.
Распространённость интерфейса может быть связана с его простотой. Плагин объявляет работу с определёнными типами данных (например, «audio/mp3») с помощью информации в файле. Когда браузер встречает такой тип данных, он загружает связанный с ним плагин, выделяет пространство на отображаемой странице и посылает ему поток данных. Плагин полностью отвечает за отображаемые данные, включая видео, аудио и другие. Поэтому плагин работает в пределах страницы, в отличие от старых браузеров, которые должны были запустить внешнее приложение для отображения неизвестного типа данных.
API интерфейса требует от каждого браузера реализации незначительного количества функций. Необходимо около 15 функций для инициализации, создания, уничтожения и расположения плагина. NPAPI поддерживает сценарии, печать, полноэкранные плагины, безоконные плагины и потоки данных.
Функция поддержки скриптовых языков позволяет использовать JavaScript код на веб-странице для взаимодействия с плагином. Различные версии Netscape и Mozilla поддерживали эту функциональность с использованием различных технологий: LiveConnect, XPConnect, и npruntime.
Следующие браузеры поддерживают NPAPI плагины: Epiphany Google Chrome (до 40 версии) Safari Espial TV Browser Konqueror Приложения проекта Mozilla, включая Camino Firefox (планируется постепенный отказ от поддержки) Mozilla Application Suite SeaMonkey Netscape Navigator и Communicator Opera Internet Explorer до версии 5.5SP2
Некоторое время Internet Explorer обеспечивал функционирование плагинов, созданных для Netscape. Это было связано с малым количеством реализованных ActiveX функций с помощью файла «plugin.ocx», который выступал в качестве прослойки между ActiveX и NPAPI плагинами. IE будет загружать ActiveX и использовать определённые для страницы плагины. Microsoft сделала заявление, что использование NPAPI небезопасно (либо небезопасен API, реализованный в IE) и прекратила поддержку, начиная с версии 5.5SP2
Популярным заблуждением о технологии NPAPI является его бо́льшая безопасность, чем у ActiveX. Однако обе технологии запускают машинный код и имеют привилегии родительского процесса. Если родительские процессы обладают одинаковыми привилегиями, то вредоносный NPAPI плагин и ActiveX могут нанести сходный ущерб. Стоит отметить, что NPAPI плагины можно сделать более безопасными простой сменой учётной записи пользователя. В общем случае имеется возможность устанавливать и запускать плагины с пользовательскими правами, в то время как использование ActiveX требует административных привилегий. С ограниченными правами плагин не сможет нанести большого вреда[источник не указан 267 дней].
Другим важным отличием между NPAPI и ActiveX является то, что NPAPI используются только в качестве интернет-плагинов, в то время, как ActiveX используется для широкого круга задач, включая применение в Windows приложениях. Обычный пользователь Windows имеет огромный массив установленных элементов ActiveX, некоторые из которых помечены как «безопасно для скриптов», на самом деле не являющиеся безопасными. Любой из них может быть использован для атаки на компьютер пользователя[4].
Другим отличием для NPAPI является то, что его реализации (до Mozilla Firefox, см. ниже) не загружали и не устанавливали автоматически недостающие плагины. На месте такого плагина отображалась заглушка. Если пользователь нажимал по ней, то он перенаправлялся на сайт Netscape, где мог подобрать, загрузить и установить подходящий плагин. Безусловно, такая схема неудобна для пользователя, однако она исключает один из векторов атаки, используемый вредоносным ПО.
Internet Explorer считывает из HTML информацию о месте установленного ActiveX. Если элемент ActiveX не установлен, IE самостоятельно загрузит недостающий элемент из указанного источника, затем задаст вопрос о принятии цифровой подписи и нажатии кнопки установки. Подобная схема является рабочей в доверенной инфраструктуре, однако использование методов социальной инженерии может убедить пользователя проигнорировать предупреждения, и повлечь негативные последствия. Большое количество программ-шпионов, рекламного ПО и вредоносных сайтов используют этот вектор атаки. Для уменьшения рисков, Microsoft пришлось повысить уровень безопасности по умолчанию для элементов ActiveX и вести списки вредоносных элементов ActiveX.
Mozilla Firefox пытается предложить золотую середину. Если плагин неизвестен, то пользователь будет оповещён и направлен на сайт mozilla.org с безопасным соединением. Пользователь может разрешить Firefox загрузить и установить соответствующий плагин. Эта модель не указывает браузеру место загрузки плагина: плагины загружаются из централизованного места. Это позволяет Firefox предоставлять механизм бесшовной установки надёжных и проверенных плагинов. Данная модель неявно доверяет сервису поиска «хороших» плагинов, что требует повышенной безопасности данного сайта.