3

私は巨大なアプレットに取り組んでおり、100 個以上の jar をロードします。そのうちの 50 個はサードパーティ製です。それらはすべて署名され、信頼されています。

残念ながら、openmap はバイナリ ファイル (シェープ ファイルとレイヤー ファイル) を読み込みます。これらのファイルは jar ではない、マニフェストがないなどの理由で署名できません (AFAIK)。

jar はバイナリ ファイルをロードするため、実行時に混合コードの警告が表示されます。これを回避するために私が見つけた唯一のことは、すべての .jar を「Trusted-Library: true」としてマークすることです。すべての .jar のマニフェストを変更すると、すべての .jar を再署名する必要があり、これは政治的な問題です。

Java コントロール パネルでダイアログを無効にできることはわかっています。別の回避策を探しています。素朴に、警告なしでそれらのファイルをロードするために、openmapまたはそれを使用するjarを信頼できる(または必要なものは何でも)マークできるようにしたいと思います。openmap を信頼できるライブラリにしようとしましたが、エラーは解消されません。openmap を使用する jar を信頼できるライブラリにしようとすると、jar がさらに他の jar に依存し、それらの依存クラスが別のクラスローダーにあるために jar 内のクラス定義をロードできないため、問題が発生します。

編集:
これはダイアログをトリガーするように見えます(このログステートメントを取得するには、「はい、安全でない可能性をブロックする」をクリックしました)

セキュリティ: http://localhost:8080/app/client-lib/ のリソース名 "http://localhost:8080/maps/politicalWorld/vmap_political_world/vmap_area_thin.shp" : java.lang.SecurityException: 信頼されたローダーがロードを試行しましたhttp://localhost:8080/app/client-lib/からのサンドボックス化されたリソース

4

1 に答える 1

2

ファイルをjarファイルに入れ、署名してリソースとしてロードすると、問題ありません。コードベースにある URL を介してそれらをロードすると、問題が発生する可能性があります (アプレットの一部と区別できなくなるため)。ただし、それらをコードベースから移動すると、悪意のあるものに置き換えられる可能性があるため、信頼できなくなることに注意してください。

安全である可能性はほとんどないため、追加しないことをお勧めしTrusted-Library: trueます。コードに悪意があるわけではありませんが、ライブラリとして安全に使用できるようには設計されていません。

また、混合コードの警告を無効にすると、クライアント マシンが、混合コードの警告によって緩和されるはずの攻撃にさらされる可能性があります。

于 2012-01-18T00:57:57.947 に答える