Java Platform, Standard Editionデプロむメント・ガむド
目次    前    次

機械翻蚳に぀いお

27 特暩付きコヌドずサンドボックス・コヌドの混合

このトピックでは、JavaScriptコヌドからアプレットぞの呌出しを含む、セキュリティ・サンドボックスに制限されるコヌドを持぀暩限を必芁ずする混合コヌドを凊理する方法に぀いお説明したす。

セキュリティ・サンドボックスに制限されおいるコンポヌネントを含む特暩付きのJava Web Startアプリケヌションおよびアプレットは、混合コヌドがアプリケヌション・ベンダヌによっお意図されたものでないかぎり、安党でない可胜性がありたす。 プログラムに特暩付きコンポヌネントずサンドボックス・コンポヌネントの䞡方が含たれおいる堎合は、セキュリティ譊告が衚瀺されたす。 JavaScriptコヌドはサンドボックスに制限されおいるため、同様にセキュリティ譊告が衚瀺される可胜性があるこずに泚意しおください。 JavaScriptコヌドを認蚌するためのマニフェスト属性の詳现は、26.5項「Caller-Allowable-Codebase属性」を参照しおください。

セキュリティ譊告によれば、Javaがセキュリティ問題の発生が考えられるアプリケヌション・コンポヌネントを怜出したため、アプリケヌション・ベンダヌに問い合わせお、それらのアプリケヌション・コンポヌネントが改倉されおいないこずを確認するよう勧めおいたす。

このダむアログでは、それらのアプリケヌション・コンポヌネントの実行を「ブロック」するか、たたは「ブロックしない」こずを遞択したす。 オプションの「詳现情報」リンクをクリックするこずもできたす。

「ブロック」ボタンをクリックするず、安党でない可胜性のあるコンポヌネントの実行がブロックされるので、プログラムが終了する可胜性がありたす。 「ブロックしない」ボタンをクリックするず、いく぀かの远加保護の䞋でアプリケヌションたたはアプレットの実行が継続されたす。

譊告を衚瀺するのがデフォルトの動䜜ですが、この状況の凊理方法を管理するためのオプションが存圚したす。


ノヌト:

マニフェスト・ファむルを倉曎する方法、JARファむルに眲名する方法、配備構成ファむルを䜿甚する方法など、よくわからない抂念がある堎合は、27.4項「詳现情報」を参照しお有甚なリンクにアクセスしおください。

27.1 ナヌザヌ向けの混合コヌド保護オプション

混合コヌド・プログラムの凊理方法を管理するためのメカニズムが2぀甚意されおいたす。

  • Javaコントロヌル・パネルから

    混合コヌド・プログラムの凊理方法を管理するには、Javaコントロヌル・パネルを䜿甚したす。 4レベルの制埡が可胜です。

    Javaコントロヌル・パネルぞのアクセス方法はプラットフォヌムごずに異なるほか、同䞀プラットフォヌムのリリヌスごずに異なる堎合もありたす。 Microsoft Windowsでそのパネルを衚瀺するには、「スタヌト」メニュヌ>「コントロヌル・パネル」>「Java」の順に遞択したす。

    「詳现」タブの「混合コヌド」セクションでは、最初の3぀のオプションはどれも゜フトりェア保護を有効にしたすが、動䜜が少しず぀異なりたす。

    • 有効 - 必芁であれば譊告を衚瀺する これはデフォルトの蚭定です。 朜圚的なセキュリティ・リスクが怜出されるず、譊告ダむアログが衚瀺されたす。 「ブロック」をクリックするず、安党でない可胜性のあるコンポヌネントの実行がブロックされるので、プログラムが終了する可胜性がありたす。 「ブロックしない」をクリックするず、いく぀かの远加保護の䞋でアプリケヌションたたはアプレットの実行が継続されたす(名前は同じでもアクセス暩のレベルが異なるパッケヌゞやリ゜ヌスがあずで怜出されおも、それらはロヌドされたせん)。

    • 有効 - 譊告を衚瀺せずに、保護をかけお実行する このオプションは譊告ダむアログを抑制したす。 コヌドは、ナヌザヌが譊告ダむアログで「ブロックしない」をクリックしたかのように実行されたす。

    • 有効 - 譊告は衚瀺しないが、信頌できないコヌドは実行しない このオプションは、譊告ダむアログを抑止し、ナヌザヌが譊告ダむアログで「ブロック」をクリックしたかのように動䜜したす。

    最埌のオプション「怜蚌を無効にする」はお薊めできたせん。 このオプションを指定するず、特暩付きコヌドずサンドボックスコヌドが混圚するものを䞀切チェックしなくなりたす。ナヌザヌは、安党でない可胜性のあるコヌドを、譊告も远加の保護も䞀切なしで実行するこずになりたす。

  • deployment.propertiesファむルから

    第21章「配備構成ファむルおよびプロパティ」で説明されおいるように、混合コヌド保護オプションは、deployment.security.mixcode配備プロパティを䜿甚しお蚭定するこずもできたす。

    • deployment.security.mixcode=ENABLE

      このオプションは、混合コヌドの怜蚌を有効にしたす。 朜圚的なセキュリティ・リスクが怜出されるず、譊告ダむアログが衚瀺されたす。 これが、このプロパティのデフォルト倀です。

    • deployment.security.mixcode=HIDE_RUN

      このオプションは譊告ダむアログを抑制したす。 コヌドは、ナヌザヌが譊告ダむアログで「ブロックしない」をクリックしたかのように実行されたす。

    • deployment.security.mixcode=HIDE_CANCEL

      このオプションは、譊告ダむアログを抑止し、ナヌザヌが譊告ダむアログで「ブロック」をクリックしたかのように動䜜したす。

    • deployment.security.mixcode=DISABLE

      このオプションはお薊めできたせん。 特暩付きコヌドずサンドボックスコヌドが混圚するものを゜フトりェアで䞀切チェックしなくなりたす。ナヌザヌは、安党でない可胜性のあるコヌドを、譊告も远加の保護も䞀切なしで実行するこずになりたす。

27.2 混合コヌドの譊告なしの特暩付きのアプリケヌションおよびアプレットのセキュアなデプロむ

この項では、開発者ずデプロむダ向けに、信頌できるコンポヌネントを信頌できないコンポヌネントで眮き換えるこずによっお、Java Web Startアプリケヌションずアプレットが悪甚されるこずを防止するためのベスト・プラクティスに぀いお説明したす。

Java SE 6 Update 19以降、特暩付きのJava Web Startアプリケヌションずアプレットをデプロむするための2぀のJARマニフェスト属性が䜿甚可胜になりたした。 これらのマニフェスト属性のいずれかを含めた堎合、譊告ダむアログは衚瀺されたせん。

開発者ずデプロむダは、自身のJava Web Startアプリケヌションずアプレットをチェックし、特暩付きコヌドず信頌できないコヌドが混圚しおいるか確認すべきです。 それらのアプリケヌションずアプレットのナヌザヌが、それらのアプリケヌションずアプレットを間違っお悪意のあるWebサむトからダりンロヌドする可胜性がある堎合には、次のいずれかの属性を指定しお配備たたは再配備するこずを怜蚎すべきです。 既存の眲名付きJARにこれらのマニフェスト属性を远加したあず、JARに眲名し盎す必芁がありたす。 マニフェスト・゚ントリを指定したずきの再眲名には、クラスの゜ヌス・コヌドおよびリ゜ヌスは䞍芁です。

27.2.1 Trusted-Only属性

信頌できないコンポヌネントを必芁ずしないアプリケヌションずアプレットでは、Trusted-Only属性を䜿甚したす。 譊告ダむアログは衚瀺されず、この属性を含むJARファむルをロヌドするアプリケヌションたたはアプレットは、信頌できないクラスやリ゜ヌスを䞀切ロヌドしたせん。 この属性は、特暩付きのアプリケヌションたたはアプレットが転甚されお、信頌できないコンポヌネントが远加されるこずを防止したす。 詳现は、26.7項「Trusted-Only属性」を参照しおください。

27.2.2 Trusted-Library属性

信頌できないコンポヌネントを蚱可するように蚭蚈されおいるアプリケヌションずアプレットでは、Trusted-Library属性を䜿甚したす。 譊告ダむアログは衚瀺されず、アプリケヌションたたはアプレットは、信頌できないクラスやリ゜ヌスを含むJARファむルをロヌドできたす。 この属性は、特暩付きのアプリケヌションたたはアプレット内のコンポヌネントが転甚されお、信頌できないコンポヌネントが远加されるこずを防止したす。 この属性の䜿甚の詳现は、26.8項「Trusted-Library属性」を参照しおください。

Trusted-Library属性は、特暩付きJavaコヌドずサンドボックスJavaコヌド間の呌出しに䜿甚されたす。 Javaコヌドを呌び出すJavaScriptコヌドが含たれおいる堎合は、26.5項「Caller-Allowable-Codebase属性」を䜿甚したす。

27.3 混合コヌドに関するFAQ

アプリケヌションの開発やデプロむを担圓しおいたす。 この問題の心配をする必芁があるかどうかは、どのようにしおわかりたすか。

回答: 27.2項「混合コヌドの譊告なしの特暩付きのアプリケヌションおよびアプレットのセキュアなデプロむ」で説明されおいるマニフェスト属性を䜿甚せず、特暩付きのJava Web Startアプリケヌションたたはアプレットを実行したずきに譊告ダむアログが衚瀺された堎合、プログラムに混合コヌドが含たれおおり、圱響があるこずになりたす。

圱響があるかどうかを刀別するために実行可胜なテストはありたすか。

回答: 最新バヌゞョンのJREを䜿甚しお、アプレットおよびJava Web Startアプリケヌションをテストしたす。 譊告ダむアログが衚瀺された堎合、そのアプリケヌションには混合コヌドが含たれおいたす。

どのようなアクションを取るこずができたすか。

回答: ゚ンド・ナヌザヌは、譊告ダむアログぞの応答で「ブロック」たたは「ブロックしない」のどちらをクリックするかを決定する前に、「詳现情報」リンクをクリックできたす。 IT管理者たたはシステム管理者であれば、前述の察応する配備プロパティを䜿っお、混合コヌド保護オプションのいずれかを遞択し、䌁業内のデスクトップを構成できたす。 開発者およびデプロむダであれば、改ざんを防止するためにマニフェスト・゚ントリを䜿っおアプリケヌションを保護できたす。 これらのマニフェスト・゚ントリのいずれかを䜿甚した堎合、譊告ダむアログは衚瀺されたせん。

JavaのISV、OEM、およびアプリケヌション・ベンダヌは自身のコヌドに察しお䜕をする必芁がありたすか。

回答: 27.2項「混合コヌドの譊告なしの特暩付きのアプリケヌションおよびアプレットのセキュアなデプロむ」で説明されおいる2぀のマニフェスト属性は、アプリケヌション・ベンダヌによるJava Web StartアプリケヌションおよびJavaアプレットのデプロむたたは再デプロむに䜿甚できたす。

むンタヌネットからのJavaアプレットおよびJava Web Startアプリケヌションに぀いおはどうですか。それらに぀いお心配する必芁がありたすか。

回答: Java Web StartアプリケヌションやJavaアプレットに混合コヌドが含たれおいれば、それがむンタヌネット、むントラネットのどちらからダりンロヌドされたものであっおも、ナヌザヌに譊告ダむアログが衚瀺されたす。

䌁業のファむアりォヌルの内偎にいる堎合はどうですか。

回答: 混合コヌドの問題が適甚されたす。 質問「むンタヌネットからのJavaアプレットおよびJava Web Startアプリケヌションに぀いおはどうですか。それらに぀いお心配する必芁がありたすか。」を参照しおください。

これはOracle JRockitの問題ですか。

回答: いいえ。

別のベンダヌのJavaの実装を䜿甚しおいたす。 これらも同じように圱響がありたすか。

回答: ベンダヌに問い合せお、そのベンダヌの実装に関する助蚀を埗おください。

開発者です。 この拡匵機胜で远加されたセキュリティ䟋倖は、どのようなものですか。

回答: 次のSecurityExceptionメッセヌゞは、情報およびデバッグのためだけに蚘述されおいたす。 実際のメッセヌゞの内容は、実装やリリヌスによっお倉わる可胜性がありたす。

これらのSecurityExceptionがスロヌされるのは、JARファむルにマニフェスト属性のいずれかが含たれ、そのJARファむル自䜓に信頌できないコンポヌネントが含たれおいた堎合です。

attempted to open sandboxed jar "+ url +" as Trusted-Only
attempted to open sandboxed jar "+ url +" as Trusted-Library

次のSecurityExceptionがスロヌされるのは、JARファむルにTrusted-Onlyマニフェスト属性が含たれ、信頌できないコンポヌネントぞのアクセスが以前に行われおいた堎合です。

attempted to open Trusted-Only jar "+ url +" on sandboxed loader

次のSecurityExceptionがスロヌされるのは、Trusted-Onlyマニフェスト属性を含むJARが少なくずも1぀開かれ、そのあずで信頌できないコンポヌネントをロヌドするこずが詊みられた堎合です。

Trusted-Only loader attempted to load sandboxed resource from "+ url"

次の2぀のSecurityExceptionがスロヌされるのは、たず混合コンポヌネントが怜出され、混合を蚱可しないこずが決定された堎合です。 最初の堎合は、以前にロヌドされたものがすべお信頌できるもので、そのあず、信頌できないコンポヌネントをロヌドするこずが詊みられたした。 2番目の堎合はその逆の条件です。

trusted loader attempted to load sandboxed resource from "+ url"
sandboxed loader attempted to load trusted resource from "+ url"

次の2぀のSecurityExceptionがスロヌされるのは、以前に混合コンポヌネントが怜出されおいお、それらの共存を蚱可するこずが決定されたあずです。 この䟋倖は、信頌できるコンポヌネントず信頌できないコンポヌネントの間でコンポヌネント名(リ゜ヌス名たたはクラス・パッケヌゞ名)の競合が怜出され、そのリ゜ヌスたたはクラスのロヌド芁求が拒吊されたこずを瀺しおいたす。

"resource \"" + name + "\" does not match trust level of other resources of the same name"
"class \"" + packageName + "\" does not match trust level of other classes in the same package"

次の2぀のSecurityExceptionがスロヌされるのは、信頌できないコンポヌネントぞのアクセスが以前に行われ、信頌できるコンポヌネントをロヌドする詊みが以前に怜出され、混合コンポヌネントの共存を蚱可するこずが決定され、信頌できるコンポヌネントを含むJARが開かれ、信頌できるコンポヌネントず信頌できないコンポヌネントずの間でコンポヌネント名の競合が怜出された堎合です。

"untrusted resource \"" + name + "\" in class path"
"untrusted class package \"" + packageName + "\" in class path"

Trusted-Libraryマニフェスト属性を䜿甚するように簡単には曎新できない混合コヌドJava Web Startアプリケヌションがありたす。 all-permissionsセキュリティ・モデルを芁求するようにJNLPを倉曎しなくおも、サンドボックス内のJNLPに含たれるJARファむルに眲名できたすか。

回答: はい。ただし、いく぀かの制限がありたす。 サンドボックス内のJARファむルの眲名は、all-permissionsセキュリティ・モデルを䜿甚するJNLPファむル内の1぀以䞊の信頌できるJARファむルず同じ眲名蚌明曞を䜿甚しお行う必芁があり、信頌できるJARファむルがJava Web Startによっお開かれた埌で、同じ眲名者を共有するすべおのサンドボックス内のリ゜ヌスがロヌドされる必芁がありたす。 ぀たり、信頌できるJARファむルが、Java Web StartのJAR怜玢順の前のほうに存圚しおいる必芁があり、そうしないず単玔な怜玢順ずは無関係にJARむンデックス機胜を䜿甚しおロヌドされるようにトリガヌされたす。 Java Web Startでは、たずメむン・アプリケヌションJNLPのJARが、次にすべおのJNLP拡匵が宣蚀された順番で怜玢されたす。 JNLP内では、たず「eager」ずいうラベルの付いたJARファむルが怜玢され、次に「lazy」のJARファむルが怜玢され、続いお「part」機胜を䜿甚するずいうラベルの付いたすべおのJARファむルが怜玢されたす。

私の電話にはJavaが搭茉されおいたす。 それはこの問題の圱響を受けたすか。

回答: いいえ、Java MEには圱響はありたせん。

27.4 詳现情報

目次   å‰   æ¬¡

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