スポンサーリンク
「Java 7 に脆弱性」というニュースが話題になっていますが、朝日新聞やそのWeb上の記事で紹介されている「Javaコントロールパネル」からJavaアプレットを無効化する方法は、「Java 7 Update 10(現在の最新版!)以降」が「単独」でインストールされている場合にしかちゃんと利用できません。そこで、「Javaアプレット無効化方法を多くの人に紹介する場合には、他のバージョンでどうなるかを含めて知ってもらう方がよさそう」と思ったので、今回はそこまで考慮した上での無効化手順(Windows向け)を紹介します。
脆弱性の存在が発表されたときは、自分はMac/Linuxだから大丈夫、とか、自分は対策済みだから大丈夫ではなく、PCに詳しくない人にも教えてあげてください。家族用PCとか要注意です。
※「インストールされているJavaバージョンの調べ方」からまず、自分のPCにインストールされているJavaバージョンを知った上でお読みください。
目次
スポンサーリンク
Java 7 Update 10以前ではコントロールパネルから無効化できない
Java 7 Update 10以降の場合は、「スタート>コントロールパネル>Java」から開ける「Javaコントロール・パネル」のセキュリティタブにある「ブラウザでJavaコンテンツを有効にする」をオフにすることでJavaアプレットを無効化できます(java.comで紹介されている設定手順、ブラウザからJavaアプレットの利用要求が来たとしても拒否してくれる)。
例:Java 7 Update 10より前の場合
しかし、「Java 7 Update 10」以降でないとこの方法は利用できず、「セキュリティタブ」には「証明書」しか表示されません。
つまり、Java 6や、Java 7でもUpdate 10より前のバージョンでは、この方法は使えないのです。
参考:Java 6とJava 7が共存していると・・・
さらに悪いことに、Java 6 と Java 7が共存していたりすると、「Javaコントロールパネル」がJava 6 で表示され、「Javaアプレット」がJava 7で実行されるといった自体が、ごく普通に発生するようです(やってみたらそうなった。ならない場合もあるのかもしれないが、そうなる場合があるので注意。おそらくプラグインだけJava 7を参照するようになったと思われる)。
つまり、インストール順によって、こんなことまであり得る以上、Java 7 Update 10以降がインストールされていても、Java 6が共存している場合は危険というわけです(まぁこの場合はコントロールパネルがJava 6なので、そもそも設定ができませんが)。
結論
したがって、Java 7 Update 10以降が単独でインストールされている環境以外(Java 6単独や、複数バージョン混在環境)では、Javaアプレットだけを無効化したい場合であっても、すべてのJava(JRE)をアンインストールしてしまうのが、一番無難だと言えます(Javaアプレットを起動するのに必要なプログラムを消す)。
また、どうしてもJavaアプレット以外のJavaアプリケーションを利用したい場合には、各ブラウザのJavaアプレット用プラグインの無効化がおすすめです(ブラウザからJavaアプレットを呼び出さないようにする)。
まとめ
ざっくりまとめるとこうなります。
- Java 7単独でインストールされている場合:
「コントロールパネル>Java>Javaコントロールパネルのセキュリティタブ>ブラウザでJavaコンテンツを有効にする」をOFFにして「適用」(java.comでの無効化手順紹介ページ)
- 当てはまるかよくわからない・自身がない・その他:
「アンインストール」または「ブラウザのJavaプラグインを停止する」
おまけ:コマンドライン
先ほど紹介した、Java 7でJavaアプレット、Java 6でコントロールパネルが表示されたときに呼び出されたコマンドラインをメモしておきます。なんとなく。
ブラウザからのJavaアプレット呼び出し関連(Java 7 Update 10)
"C:\Program Files (x86)\Java\jre7\bin\java.exe" -D__jvm_launched=1234567890 -D__applet_launched=1234512345 "-Xbootclasspath/a:C:\\PROGRA~2\\Java\jre7\lib\deploy.jar;C:\PROGRA~2\Java\jre7\lib\javaws.jar;C:\PROGRA~2\Java\\jre7\\lib\\plugin.jar" "-Djava(長すぎて簡単な確認方法では省略されてしまった)
";C:\Program Files (x86)\Java\jre7\bin\jp2launcher.exe" "C:\Program Files (x86)\Java\jre7" -D__jvm_launched=1234567890 -D__applet_launched=1234512345 -Xbootclasspath/a:C:\PROGRA~2\Java\jre7\lib\deploy.jar;C:\PROGRA~2\Java\jre\lib\javaws.jar;C:\PROGRA~2\Java\j(省略)
Javaコントロールパネルの起動(Java 6)
"C:\Program Files\Java\jre6\bin\javaw.exe" -Xbootclasspath/a:"C:\Program Files\Java\jre6\bin\..\lib\deploy.jar" -Duser.home="C:\Users\username" com.sun.deploy.panel.ControlPanel
スポンサーリンク
スポンサーリンク