アプリケーションとアプレットのセキュリティーを確保しながら
特権付きコードとサンドボックスコードを混合させる

目次

概要

セキュリティーサンドボックスに制限されているコンポーネントを含む特権付きの Java Web Start アプリケーションおよびアプレットは、混合コードがアプリケーションベンダーによって意図されたものでないかぎり、安全でない可能性があります。プログラムに特権付きコンポーネントとサンドボックスコンポーネントの両方が含まれている場合は、セキュリティー警告が表示されます。JavaScript コードはサンドボックスに制限されているため、同様にセキュリティー警告が表示される可能性があることに注意してください。JavaScript コードを承認するためのマニフェスト属性については、「Caller-Allowable-Codebase 属性」を参照してください。

セキュリティー警告によれば、Java がセキュリティー問題の発生が考えられるアプリケーションコンポーネントを検出したため、アプリケーションベンダーに問い合わせて、それらのアプリケーションコンポーネントが改変されていないことを確認するよう勧めています。

このダイアログでは、それらのアプリケーションコンポーネントの実行を「ブロック」するか、または「ブロックしない」ことを選択します。オプションの「詳細情報」リンクをクリックすることもできます。

ブロック」ボタンをクリックすると、安全でない可能性のあるコンポーネントの実行がブロックされるので、プログラムが終了する可能性があります。「ブロックしない」ボタンをクリックすると、いくつかの追加保護の下でアプリケーションまたはアプレットの実行が継続されます。

警告を表示するのがデフォルトの動作ですが、この状況の処理方法を管理するためのオプションが存在します。


注: マニフェストファイルを変更する方法、JAR ファイルに署名する方法、配備構成ファイルを使用する方法など、よくわからない概念がある場合には、「詳細情報」を参照して有用なリンクにアクセスしてください。

ユーザー向けの混合コード保護オプション

混合コードプログラムの処理方法を管理するためのメカニズムが 2 つ用意されています。
バージョンに関する注意: これらのセキュリティー拡張を活用するには、Java SE または Java for Business 6 Update 19 リリース (またはそれ以降) をインストールし、デフォルトで有効になる新しい Java Plug-in を使用する必要があります。以前の JRE で新しい Java Plug-in を使用するには、Java for Business 5.0 Update 24 リリース (またはそれ以降) または Java for Business 1.4.2_26 リリース (またはそれ以降) をインストールし、それらのリリースファミリの混合コードセキュリティー拡張を有効にする必要があります。
注 1: 1.4.2 リリースの混合コードチェックは Windows プラットフォームでしか使用できません。
注 2: Solaris で新しい Java Plug-in を使用するには、Firefox 3 以降が必要です。Netscape 7 や Firefox 2 はサポートされません。
注 3: 新しいプラグインがサポートするプラットフォームの詳細は、「次世代の Java Plug-in テクノロジのリリースノート」を参照してください。

混合コードの警告なしで特権付きのアプリケーションおよびアプレットをセキュアに配備する

このセクションでは開発者とデプロイヤ向けに、信頼できるコンポーネントを信頼できないコンポーネントで置き換えることによってアプリケーションとアプレットが悪用されることを防止するためのベストプラクティスについて説明します。

Java SE 6 Update 19 以降、特権付きのアプリケーションとアプレットを配備するための 2 つの JAR マニフェスト属性が使用可能になりました。これらのマニフェスト属性のいずれかを含めた場合、警告ダイアログは表示されません。

開発者とデプロイヤは、自身の Java Web Start アプリケーションとアプレットをチェックし、特権付きコードと信頼できないコードが混在しているか確認すべきです。それらのアプリケーションとアプレットのユーザーが、それらのアプリケーションとアプレットを間違って悪意のある Web サイトからダウンロードする可能性がある場合には、次のいずれかの属性を指定して配備または再配備することを検討すべきです。既存の署名付き JAR にこれらのマニフェスト属性を追加したあと、JAR に署名し直す必要があります。注:マニフェストエントリを指定したときの再署名には、クラスのソースコードとリソースは不要です。

Trusted-Only 属性

信頼できないコンポーネントを必要としないアプリケーションとアプレットでは、Trusted-Only 属性を使用します。警告ダイアログは表示されず、この属性を含む JAR ファイルをロードするアプリケーションまたはアプレットは、信頼できないクラスやリソースを一切ロードしません。この属性は、特権付きのアプリケーションまたはアプレットが転用されて、信頼できないコンポーネントが追加されることを防止します。詳細は、「Trusted-Only 属性」を参照してください。

Trusted-Library 属性

信頼できないコンポーネントを許可するように設計されているアプリケーションとアプレットでは、Trusted-Library 属性を使用します。警告ダイアログは表示されず、アプリケーションまたはアプレットは、信頼できないクラスやリソースを含む JAR ファイルをロードできます。この属性は、特権付きのアプリケーションまたはアプレット内のコンポーネントが転用されて、信頼できないコンポーネントが追加されることを防止します。この属性の使用方法の詳細は、「Trusted-Library 属性」を参照してください。

Trusted-Library 属性は、特権付き Java コードとサンドボックス Java コード間の呼び出しに使用されます。Java コードを呼び出す JavaScript コードが含まれている場合は、Caller-Allowable-Codebase 属性を使用してください。

混合コードに関する FAQ

詳細情報


Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.