23

オラクルの最新の変更のおかげで、ユーザーのコンピューターへの無制限のアクセスを必要としない、または望んでいないにもかかわらず、アプレットに署名する必要があるようです (これが現在署名されていない理由です)。特に、署名されたアプレットに対して表示される警告は望ましくありません。

このアプリケーションは無制限のアクセスで実行されるため、コンピューターと個人情報が危険にさらされる可能性があります。

...これは、それを使用している人々を怖がらせるでしょう。

アプレットに署名することはできますが、何らかの方法で「サンドボックスを使用し続ける」というマークを付けることはできますか?

私が署名している唯一の理由は、バージョン 7、アップデート 40 の時点で、Oracle が、署名されていないアプレットを実行するときに対処しなければならないしつこいユーザーをさらに増やしたためです。以前は、一度アプレットを信頼したことを示すボックスにチェックを入れることができ、それは記憶されていました。Update 40 の時点では、そのブラウザー セッションについてのみ記憶されます。ブラウザを閉じて後で戻ってくると、警告が再び表示されます。彼らはまた、Java プラグインの「将来のバージョン」で、署名のないアプレットを完全に無効にする予定であるとも述べています。

4

1 に答える 1

17

はい、できます。このページでは、その方法を示します (ほとんどの場合、このページも必要です)。主な手順は 2 つあります。

  1. Permissionsおよび属性をマニフェスト ファイルに入れCodebaseます。

    権限: サンドボックス
     コードベース: *.myserver.com

    これらの新しい属性は Java 7 Update 25 で導入され、ここで説明されています。上にリンクされた最初のページにはが表示されCodebase: myserver.comていますが、ほとんどのサイトでは上記のワイルドカードが必要です。Codebase(アプレットのサンドボックス化にこの属性が必要かどうかはわかりませんが、ほとんどの署名付きアプレットでは良い考えのようです。)

    次に、次のように、jar をビルドするときにそのマニフェスト ファイルを使用します。

    jar cvfm YourJarFile.jar your_manifest_file.txt classes_and_such

    これらの属性は、jar 内の MANIFEST.MF ファイルにまとめられ、Java ランタイムにアプレットをサンドボックス化するように指示します。

  2. ここで説明するように、<applet>タグでパラメーターを指定する必要がありpermissionsます。

    <applet code='yourAppletClass' archive='YourJarFile.jar'>
         <param name="permissions" value="sandbox">
     </アプレット>

    この 2 番目の手順がないと、タグではなく jar でサンドボックス化されたアクセス許可を要求する署名付きアプレットが実行されなくなり、「アプリケーションを実行できません」というタイトルのダイアログ ボックスが表示され、「理由: JAR マニフェストはサンドボックスでのみ実行するように要求されました」と表示されます。

上記の両方の手順を実行すると、ユーザーはより安心できるメッセージを受け取ります (おそらく、アプレットはサンドボックス化されたままになります)。

このアプリケーションは、コンピューターと個人情報を保護するための制限付きアクセスで実行されます。

...そして、発行元と場所を信頼する関連チェックボックスをオンにすると、次にブラウザを開いてアプレットを実行したときに、そのチェックボックスが再び表示されることはありません。


(この質問をしているうちに答えが見つかりましたが、答えがスタックオーバーフローになかったので、先に進んで質問と答えを投稿しようと思いました。)

于 2013-09-25T16:47:34.350 に答える