ブラウザ拡張機能(ブラウザかくちょうきのう、英語: browser extension)とは様々な方法でウェブブラウザの機能を拡張するためのコンピュータプログラムである。ブラウザやバージョンによっては、プラグイン(英語: plug-in)もしくはアドオン(英語: add-on)といった同じ意味の用語と使い分けられることがある。一部の拡張機能ではHTMLやJavaScriptといったウェブ技術を活用して開発されている[1]。また、例としてツールバーの追加など、表示できるウェブサイトの内容に直接影響を与えること無くウェブブラウザのユーザインタフェースを変更することが出来る。
マイクロソフトは1999年にリリースしたInternet Explorer 5より[2]、Mozilla Firefoxはリリース開始となった2004年より、Operaは2009年リリースのバージョン10より、Google Chromeは2010年リリースのバージョン4より、Apple Safariは2010年リリースのバージョン5より拡張機能に対応するようになった。拡張機能の構文はブラウザによって非常に異なっており、少なくともあるブラウザで動作しても他のブラウザで動作しないことがある。検索エンジンツールでは、この問題を回避する試みとしてMycroftによるマルチタグ戦略でブラウザを問わずに動作する検索エンジンデータベースアドオンが存在する[3]。
多くのブラウザではユーザが目的の拡張機能を探したり、人気のある拡張機能の一覧を見ることができるオンラインのストアサイトがある。Google Chrome[4]、Mozilla Firefox[5]、Safari[6]はそれぞれ自前のストアサイトを持っているものの非公式のストアサイトもある[7][8]。
ブラウザ拡張機能の用途は多岐にわたる。
ブラウザツールバーとはブラウザのウインドウ内に配置されるツールバーで全てのメジャーブラウザで対応しており、ブラウザのグラフィカルユーザインタフェース (GUI) や機能を拡張する方法として開発されている。
プラグインはアプリケーションプログラミングインタフェース (API) を使ってブラウザに特定の機能を追加する。APIでサードパーティーはブラウザとやり取りできるプラグインを開発することが出来る。当初のAPIはNPAPIだったが、その後GoogleはChromeでPPAPIインタフェースを導入した。
ほとんどのブラウザにおいて拡張機能を使ってプライベートブラウジングでユーザのオンラインプライバシーを守ることができ、様々な種類のユーザブラウジングプライバシーを制御したり脅威から防護することができる多種多様な拡張機能がある。
一方で、拡張機能を使用すること自体が個人情報漏洩に繋がることがある[9]。
プライバシーに関連する拡張機能のほとんどは第三者によるユーザへの追跡を防ぐ機能、広告やスクリプトをブロックする機能、良い動作を確実にする受動的なセキュリティツールの3種類に分かれる[10]。
実際のブラウザ拡張機能の開発は特定ブラウザに対応した拡張機能の開発になる。各ブラウザごとに拡張機能の構築に必要な固有のアーキテクチャとAPIがあり、異なるコードや技術が求められるが、開発フレームワークによってそれぞれ1つのみのコードとAPIのみでクロスブラウザ対応拡張機能を構築することが出来るようになりブラウザごとに異なるバージョンの拡張機能を開発する必要はなくなった。これらのフレームワークの例として、Internet Explorer、Firefox、Chrome、Safari、Operaに対応したクロスブラウザの拡張機能を構築できるAdd-ons Framework[11]やInternet Explorer、Firefox、Chrome、Safariに対応したクロスブラウザの拡張機能を構築できるCrossrider開発フレームワークがある[12]。
また、Extension Maker[13]というクロスブラウザ拡張機能開発環境もあり、上記2つのフレームワークとは異なり、コードを記述する必要はなく、既存ブロックから拡張機能を開発することが出来る。
ブラウザ拡張機能はブラウザによって全てにアクセスしたり、ウェブページに広告を挿入したり、第三者のサーバにバックグラウンドのHTTPリクエストを送ったりすることができるため、ブラウザ拡張機能がそれを悪用する事が可能である。ウェブページはウェブのセキュリティモデル(特に同一生成元ポリシー)で制限されている。
結果として、ブラウザ拡張機能の中には説明と異なり、インストールしたユーザの意図に反した動作をするのがある。実はマルウェアである拡張機能もあり、ユーザに知識がない場合アンインストールが困難なアドオンであるブラウザ拡張機能をインストールさせる不要バンドルソフトウェアをダウンロードさせるソフトウェアもある[14]。
2012年、セキュリティ研究者がマルウェアのリモートコントロール部分としてウェブページの内容変更や実行ファイルのダウンロード、アカウントの乗っ取り、一部ウェブサイトで必須になっている二段階認証セキュリティ機能を突破ができるブラウザ拡張機能を開発したとしている[15]。
2013年5月、マイクロソフトはブラジルでChromeとFirefox対応拡張機能の中にFacebookのプロファイルを乗っ取るものがあったと発表した[16]。
一部のGoogle Chrome拡張機能開発者は、売りに出された拡張機能を買収し第三者企業のために拡張機能の中に新たなアドウェアを組み込む不要なアップデートをこっそり行うように改造している[17][18]。2014年1月、Googleは規約違反として2つの拡張機能をChromeのブラウザサービスから除去した。除去を決定した拡張機能は「Add to Feedly」と「Tweet This Page」で、拡張機能開発者が第三者に拡張機能を売却した後に拡張機能に不要なポップアップ広告が付いたことをユーザが気づくようになった[19]。
Googleが所有するウェブサイトにアクセスするウェブブラウザの5%はコンピュータプログラムによってページに広告が挿入されているとされる[20][21][22]。
{{cite web}}
: Cite webテンプレートでは|access-date=
引数が必須です。 (説明)
{{cite web}}
: Cite webテンプレートでは|access-date=
引数が必須です。 (説明)
{{cite web}}
: Cite webテンプレートでは|access-date=
引数が必須です。 (説明)