アプレットに署名付きコードと署名なしコードの両方が含まれていると Java が通知するのはなぜですか?
-
25-09-2019 - |
質問
私の署名済み Java アプレットは Java Update 19 まで正常に動作していました。Java Update 19 を使用しているすべてではありませんが、一部のユーザーが、アプレットに署名付きコードと署名なしコードの両方が含まれているという Java セキュリティ メッセージを報告します。
アプレットを作成するプロセスは次のとおりです。
- Netbeans IDE でアプレット プロジェクトをクリーンにしてビルドします。
- WinRAR でアプレット jar ファイルを開き、必要な mysql JDBC ドライバーの .class ファイルを jar ファイルに追加します。
- アプレット jar ファイルに署名します。
アプレット内でどのコードが署名されているか、どのコードが署名されていないかを判断する方法を誰か教えてください。jar ファイルの内容をアプレットの jar ファイルにコピーする以外に、mysql JDBC ドライバーの jar ファイルをアプレットに含めるより良い方法はありますか?
ありがとう
解決
試してみるべきこと:
- Java プラグイン コントロール パネル ($JAVA_HOME/bin/ControlPanel) に移動します。
- に行きます
Advanced
タブ。 - 拡大する
Debug
- チェック
Enable tracing
,Enable logging
, 、 そしてShow applet lifecycle exceptions
- 拡大する
Java console
- チェック
Show console
- クリック
OK
(またはClose
, 、OSによって異なります)
アプレットがロードされると、Java コンソールが開きます。それをクリックしてすぐに「5」を押します。アプレットを実行するために取得された jar とクラスをログに記録します。この中のどこかに、どの jar またはクラスが「署名なし」とみなされるかを示すメッセージがあるはずです。初めて失敗した場合は、ウィンドウをリロードしてもう一度試してください。
他のヒント
EDIT:原因あなたがマニフェストファイルに信頼され、ライブラリを追加するべきではないのJava 7アップデート45のバグ。ただ、新しい属性発信者許容-コードベースを追加します。詳細は、この質問を参照してください:のJavaアプレットのマニフェストを - すべての発信者許容を許可します-Codebaseする
のJava 7の更新21は、2013年4月16日にリリースされ、私たちのアプレットは、この警告ダイアログの表示を開始させた。
リリースノートパー: 署名付きJARファイルは、信頼できるライブラリの属性でタグ付けされていない場合は、混合コードと警告ダイアログが提起されているようJDK 7u21のとおり、特権アプレット内のコードを呼び出すJavaScriptコードが扱われます。
この編集あなたのMANIFEST.MFファイルを修正し、次のような行を追加します:
Trusted-Library: true
あなたはこのかかわらを行う前に、非常に注意しなければなりません。あなたの署名付きアプレットはJavaScriptから呼び出すことができる場合は、悪意のあるユーザーが潜在的にユーザーのコンピュータに有害なことを行うことができます。
あなたのアプレットを確保するための一つの簡単な方法は、他のウェブサイト上で実行されるのを防ぐためです。それはあなたのサイトが一致しない場合init()
のルックスとは、例外をスローすることをgetCodeBase().getHost()
メソッドのコードを置くことによってこれを行います。
のJava 7の更新25が導入アプレットが実行できるサイトを制限する別の方法。あなたはこのようなあなたのマニフェストファイル内のcodebase属性を設定することができます:
Codebase: test.example.com www.example.com
はJavaの7アップデート45(releated 2013年10月16日)は、別のプロンプトを引き起こす可能性がLiveConnectのシステム(ジャバスクリプト・ツー・アプレットブリッジ)に多くの変更を導入します。 7u45変更についてのこの記事会談: https://blogs.oracle.com/ Javaのプラットフォームグループ/エントリー/ liveconnect_changes_in_7u45する
基本的に、あなたはまた、プロンプトを回避するために、マニフェストファイルに以下を追加したいと思うでしょう。
Caller-Allowable-Codebase: test.example.com www.example.com
あなたはアプレットを含む製品を販売している、あなたはそれがあなたの上に展開することができるかドメインわからない場合はこちら*移入できます。
は一緒になって、信頼できると信頼できないコードを混合すること6u19(書き込み時の現在のCPU / SSRリリース)で修正された脆弱性です。 のドキュメントを参照してください。こちらミックスをブロックしますか、問題がどこにあるデバッガを使用して表示する必要があります。