私の Java アプレット/アプリケーションのユーザーの多くは、Java 7 をインストールしていません (驚くことに約 80%)。プログラムを Java 6 でコンパイルすると、
- Java 7 のユーザーは、Java 6 のセキュリティの脆弱性にさらされることになりますか?
- 私のアプレット/アプリケーションは Java 6および7 で動作しますか?
- デメリットはありますか?私は Java 7 の新しい機能を実際には使用していません (簡単に修正できるダイヤモンド演算子を除く)。
Java 7 のユーザーは、Java 6 のセキュリティの脆弱性にさらされることになりますか?
私の知る限り、最も深刻なセキュリティの脆弱性があるのは Java 7 です。コードをどのようにコンパイルするかは問題ではなく、コードが何を行うか、どの JVM バージョンを使用するかだけが重要です。
私のアプレット/アプリケーションは Java 6 および 7 で動作しますか?
バグがなければ、はい。バグがある場合、両方で同じことを行う可能性が最も高いですが、そうでない可能性もあります。つまり、バグが 1 つのバージョンで表示され、他のバージョンでは表示されないか、バージョンごとに異なる方法で発生する可能性があります。
デメリットはありますか?私は Java 7 の新しい機能を実際には使用していません (簡単に修正できるダイヤモンド演算子を除く)。
欠点は、新しい構文または新しい Java 7 ライブラリを使用できないことだけです。
コードの実行方法や実行方法は変更されません。
Java 7 と Java 6 の両方で、ブラウザ サンドボックスでの実行時にセキュリティ上の欠陥が発見されました。つまり、アプレットを実行しているときです。最新のものは Java 7 のみでしたが、以前のものは Java 6 または複数のバージョンに適用されています。
問題は、あなたのアプレットを実行するユーザーは、ブラウザで Java を有効にする必要があることです。そのため、悪いアプレットを仕掛ける人々による攻撃に対して脆弱になります。たとえば、ハッキングされたサード パーティの Web サイト。
ユーザーに提供できる最善のセキュリティ アドバイスは、ブラウザの Java を無効にすることです。これは、過去および将来の潜在的な脆弱性のためです。(一部のプラットフォームでは、完全なアンインストールが推奨されます)。これらの対策には、アプレットが役に立たなくなるという副作用があります。
IMO、アプレット機能を複数の Java バージョンで動作させるのではなく、完全に削除する必要があります。