Java アプレットに署名して、サンドボックス内に保持することはできますか (ユーザーのコンピュータへのフルアクセスは許可しません)? 質問する

Java アプレットに署名して、サンドボックス内に保持することはできますか (ユーザーのコンピュータへのフルアクセスは許可しません)? 質問する

Oracle の最新の変更により、ユーザーのコンピュータに無制限にアクセスする必要がない、またはアクセスしたくない場合でも、アプレットに署名する必要があるようです (これが、現在署名されていない理由です)。特に、署名されたアプレットに表示される警告は不要です。

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

...それはそれを使用する人々を怖がらせるでしょう。

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

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

ベストアンサー1

はい、できます。このページやり方が示されています(まあ、ほとんどですが、このページ) 主な手順は 2 つあります。

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

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

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

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

    jar cvfm YourJarFile.jar your_manifest_file.txt クラスなど

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

  2. タグでは<applet>、パラメータを指定する必要がありますpermissionsここで議論されているように:

    <アプレット コード = 'yourAppletClass' アーカイブ = 'YourJarFile.jar'>
         <param name="権限" value="サンドボックス">
     </アプレット>

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

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

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

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


(この質問をしている途中で答えを見つけましたが、答えがStack Overflowになかったので、先に進んで質問と回答を投稿する

おすすめ記事