ブラウザ拡張機能

ブラウザ拡張機能（英語: browser extension）とは様々な方法でウェブブラウザの機能を拡張するためのコンピュータプログラムである。ブラウザやバージョンによっては、プラグイン（英語: plug-in）もしくはアドオン（英語: add-on）といった同じ意味の用語と使い分けられることがある。一部の拡張機能ではHTMLやJavaScriptといったウェブ技術を活用して開発されている。また、例としてツールバーの追加など、表示できるウェブサイトの内容に直接影響を与えること無くウェブブラウザのユーザーインターフェースを変更することが出来る。 マイクロソフトは1999年にリリースしたInternet Explorer 5より、Mozilla Firefoxはリリース開始となった2004年より、Operaは2009年リリースのバージョン10より、Google Chromeは2010年リリースのバージョン4より、Apple Safariは2010年リリースのバージョン5より拡張機能に対応するようになった。拡張機能の構文はブラウザによって非常に異なっており、少なくともあるブラウザで動作しても他のブラウザで動作しないことがある。検索エンジンツールでは、この問題を回避する試みとしてMycroftによるマルチタグ戦略でブラウザを問わずに動作する検索エンジンデータベースアドオンが存在する。 多くのブラウザではユーザーが目的の拡張機能を探したり、人気のある拡張機能の一覧を見ることができるオンラインのストアサイトがある。Google Chrome、Mozilla Firefox、Safariにはそれぞれ自前のストアサイトを持っているものの非公式のストアサイトもある。 ブラウザ拡張機能の用途は多岐にわたる。 ブラウザツールバーとはブラウザのウインドウ内に配置されるツールバーで全てのメジャーブラウザで対応しており、ブラウザのGUIや機能を拡張する方法として開発されている。また、ツールバーを提供するブラウザ拡張機能の特定の種類と考えられており[誰によって?]、各ブラウザごとに特化されていて、特定のブラウザで動作しているツールバーは他のブラウザでは動作しないとされている[誰によって?]。 プラグインはアプリケーションプログラミングインタフェース(API)を使ってブラウザに特定の機能を追加する。APIでサードパーティはブラウザとやり取りできるプラグインを開発することが出来る。当初のAPIはNPAPIだったが、その後GoogleはChromeでPPAPIインタフェースを導入した。 ほとんどのブラウザにおいて拡張機能を使ってプライベートブラウジングでユーザーのオンラインプライバシーを守ることができ、様々な種類のユーザーブラウジングプライバシーを制御したり脅威から防護することができる多種多様な拡張機能がある。プライバシーに関連する拡張機能のほとんどは第三者によるユーザーへの追跡を防ぐ機能、広告やスクリプトをブロックする機能、良い動作を確実にする受動的なセキュリティツールの3種類に分かれる。 実際のブラウザ拡張機能の開発は特定ブラウザに対応した拡張機能の開発になる。各ブラウザごとに拡張機能の構築に必要な固有のアーキテクチャとAPIがあり、異なるコードや技術が求められるが、開発フレームワークによってそれぞれ1つのみのコードとAPIのみでクロスブラウザ対応拡張機能を構築することが出来るようになりブラウザごとに異なるバージョンの拡張機能を開発する必要はなくなった。これらのフレームワークの例として、Internet Explorer、Firefox、Chrome、Safari、Operaに対応したクロスブラウザの拡張機能を構築できるAdd-ons FrameworkやInternet Explorer、Firefox、Chrome、Safariに対応したクロスブラウザの拡張機能を構築できるCrossrider開発フレームワークがある。 また、Extension Makerというクロスブラウザ拡張機能開発環境もあり、上記2つのフレームワークとは異なり、コードを記述する必要はなく、既存ブロックから拡張機能を開発することが出来る。 ブラウザ拡張機能はブラウザによって全てにアクセスしたり、ウェブページに広告を挿入したり、第三者のサーバーにバックグラウンドのHTTPリクエストを送ったりすることができるため、ブラウザ拡張機能がそれを悪用する事が可能である。ウェブページはウェブのセキュリティモデル（特に同一生成元ポリシー）で制限されているが、拡張機能では制限されない[要出典]。 結果として、ブラウザ拡張機能の中には説明と異なり、インストールしたユーザーの意図に反した動作をするのがある。実はマルウェアである拡張機能もあり、ユーザーに知識がない場合アンインストールが困難なアドオンであるブラウザ拡張機能をインストールさせる不要バンドルソフトウェア（英語版）をダウンロードさせるソフトウェアもある。 2012年、セキュリティ研究者がマルウェアのリモートコントロール部分としてウェブページの内容変更や実行ファイルのダウンロード、アカウントの乗っ取り、一部ウェブサイトで必須になっている二段階認証セキュリティ機能を突破ができるブラウザ拡張機能を開発したとしている。 2013年5月、マイクロソフトはブラジルでChromeとFirefox対応拡張機能の中にFacebookのプロファイルを乗っ取るものがあったと発表した。 一部のGoogle Chrome拡張機能開発者は、売りに出された拡張機能を買収し第三者企業のために拡張機能の中に新たなアドウェアを組み込む不要なアップデートをこっそり行うように改造している。2014年1月、Googleは規約違反として2つの拡張機能をChromeのブラウザサービスから除去した。除去を決定した拡張機能は「Add to Feedly」と「Tweet This Page」で、拡張機能開発者が第三者に拡張機能を売却した後に拡張機能に不要なポップアップ広告が付いたことをユーザーが気づくようになった。 Googleが所有するウェブサイトにアクセスするウェブブラウザの5%はコンピュータプログラムによってページに広告が挿入されているとされる。 ^ "What are extensions?". 18 February 2014閲覧.  ^ "Browser Extensions". 2010-06-05閲覧.  ^ "Mycroft project". 2011-10-27閲覧.  ^ "Chrome Web Store". 15 March 2014閲覧.  ^ "Mozilla Firefox Add-ons". 15 March 2014閲覧.  ^ "Safari Extensions". 15 March 2014閲覧.  ^ Eg: "Safari Add-ons". 1 March 2015閲覧.  ^ "Opera Extensions". 1 March 2015閲覧.  ^ "LifeHacker".  ^ "Add-ons Framework". 19 December 2013閲覧.  ^ "Crossrider". 28 April 2013閲覧.  ^ "Extension Maker". 13 October 2013閲覧.  ^ "PUP Criteria". Malwarebytes. 13 February 2015閲覧.  ^ "Researcher to demonstrate feature-rich malware that works as a browser extension". 15 March 2015閲覧.  ^ "Browser extension hijacks Facebook profiles". 15 March 2015閲覧.  ^ "Adware vendors buy Chrome Extensions to send ad- and malware-filled updates". Ars Technica. 20 January 2014閲覧.  ^ Bruce Schneier (21 Jan 2014). "Adware Vendors Buy and Abuse Chrome Extensions".  ^ Winkler, Rolfe. "Google Removes Two Chrome Extensions Amid Ad Uproar". blogs.wsj.com. Wall Street Journal. 17 March 2014閲覧.  ^ "Ad Injection at Scale: Assessing Deceptive Advertisement Modifications" (PDF).  ^ http://www.pcworld.com/article/2920012/superfish-injects-ads-in-one-in-25-google-page-views.html ^ http://www.cio.com.au/article/574450/superfish-injects-ads-one-25-google-page-views/ 拡張機能 (Mozilla) Google Chrome拡張機能（英語版） uBlock Origin WebExtensions Documentation - for Firefox in the Mozilla Wiki Neobars - cross-browser add-ons platform Add-ons Framework - cross browser add-on framework Just Plug It - cross browser add-on framework Browser Button - cross browser add-on framework