サイト閲覧者に仮想通貨をマイニングしてもらうことで収益を得られるツール「Coinhive」を、明示することなくサイトに設置した複数のユーザーが、不正指令電磁的記録（ウイルス）取得・保管などの容疑で警察に摘発され、物議をかもしている。

Coinhiveは、サイトに専用のJavaScriptコードを埋め込むと、閲覧者のCPUパワーを使って仮想通貨を採掘する。今回摘発された1人・デザイナーの「モロ」（@moro_is）さんは警察に、「事前に許可（もしくは予感させること）なく他人のPCを動作させたらアウト」であり、明示なくCoinhiveを設置すれば違法との説明を受けたという。

Coinhive公式サイトより

だがCoinhiveに限らず、現代的なWebサイトにはほぼすべて、何らかのJavaScriptが使われている。そのほとんどは、サイトに明示されることなく、また、事前に許可を得ることなく設置され、閲覧者のPCリソースを消費する。例えば、Googleの広告プログラム「AdSense」や、アクセス解析サービス「Analytics」もその例だ。

このため、「CoinhiveがだめならAdSenseなどもアウトではないか」「どこまでがセーフでどこまでがアウトか分からない」「JavaScriptを設置する場合はいちいち明示し、閲覧者の許可を得る必要があるとしたら非現実的だ」と心配する声も大きい。

全プログラムの事前許可求めるページ公開 閲覧は「悪夢」？

そんな中、Webブラウザ上で動くすべてのプログラムについて、閲覧者に事前に許可を得るデモページ「サイト上で実行されるプログラムについて同意を確認するためのプログラム」を、エンジニアの清水正行さんが自身のブログ「GUNMA GIS GEEK」上で公開した。

ページ表示までにダイアログが約20回表示され、いちいち同意を取る仕組み。見た人からは、「悪夢だ」「警察が求めているのはこんな世界なのか」「Coinhiveより嫌だ」などと話題になっている。

このブログでは、Google Adsense／Analyticsのほか、ブログツール「Wordpress」のJavaScriptライブラリなどが使われており、それぞれ「CPUやメモリ、電力といった閲覧者のリソースを消費する」という。また、地図コンテンツなども「複雑な計算処理をクライアントサイドで行うため、非常に負荷の高いプログラムがユーザーサイドで実行される」そうだ。

ページを開くとまず、「このページでは、広告表示やアクセス解析などのためにクライアントサイドのプログラムが実行され、閲覧者のPCリソースを使用します」などと書かれたアラートが表示される。このアラートを閉じると、「以下のプログラムを実行しますか？」と、各プログラム実行のオン・オフを選べるダイアログが次々に表示。すべてのダイアログについてオン・オフを選んでやっと、ページが表示される。

清水さんはブログで、「今のところ、ユーザーの同意を得なくてはならないプログラムと、無許可で実行してよいプログラムの定義がはっきりしない」とし、全プログラムに対して同意を求める仕組みを作ったという。サンプルコードも公開している。

また今回、プログラムのオン・オフをスクリプトで制御する仕組みで実装したが、一部のプログラムの実行を停止できないなど、「サードパーティのスクリプトをフックして実行を制御するのはなかなかに難問」だったと解説している。