..
導入以来、Javaにはセキュリティ上の問題で重要な役割を予約しています。 混在する結果とが、設計者は、開発者が使用できる言語の面で直接実装プラットフォームのセキュリティシステムを、提供しようとしてきた。
JVMの進化と改良の連続プロセスでは、この記事では、セキュリティモデルの進化に焦点を当て、モバイルスタンドアローンのための最も重要なインフラの一つ、ウェブ、そしてよりになっている、一般的にコメント、サンドボックスと呼ばれる設計ミスと現在のステータス。
この記事は、それらがトピックの完全に読者を断食Javaプログラマを経験しているかどうか、誰に宛てたものです。 いくつかの考慮事項は既にこの言語でいくつかの経験を持っている人には理解しやすくなる、しかし、この記事の読書は、あらゆる読者に適しています。
サンドボックスと呼ばれるオリジナルのモデルは、孤立した環境で潜在的に悪意のあるコードを閉じ込めるように設計されており、非常に制限されました。 Javaは誕生以来、ネットワークに強く指向であり、この考察は、重大なセキュリティ問題へのクライアントを公開、コードがリモートから直接ダウンロードされた実行モデルを考案につながった。
その最初の実装では、図に模式的に示すように、サンドボックスでは、大まかにしかローカルとリモートでコードがコードを区別する:まず、すべてのリソースへのフルアクセス例えば、として"クリティカル"システムを楽しんでいた、ファイルシステムや各種デバイス、リモートコード逆に、同じサンドボックスにより媒介されるリソースへのアクセスに限定していた:アプレットを、今、主にウェブから消え、私が最もよく知られた例となっている。

このモデルは、異なるレベルでのセキュリティメカニズムのセットが含まれています。
まず第一に、Javaはタイプセーフであり、すなわち、変数と制御とその種類(整数、浮動小数点、文字列、等..)の間に明確な関係があります。
このように特徴的な他のポインタへの整数またはブールvoidポインタ、などのタイプ、の間に暗黙的な変換の集合:CやC + +は、このコントロールを回避する方法多くの問題を知るように低/中レベルで言語でプログラムした者同時に、これらの言語は平等に、初心者および専門家両方にコミットし、プログラミングエラーの主な源となる。
開発は失策を作ったという可能性を最小限に抑えるために、Sunの設計者は、実行時に例えば、のようなニッチまたは大学レベルの言語、自動メモリ管理(ガベージコレクション)およびコントロールでのみ見られる、これまでいくつかの側面を導入アクセスメモリ(ポインタ、配列要素、等...).
第二の保護レベルは、仮想マシンで、コンパイラやランタイムによって保証されている。 これは、バイトコードは、Java VMのアセンブラは、適切な実行権限で実行されることが保証されます。 特に、2つのキーコンポーネント、SecurityManagerクラスと ClassLoader は、VMの異なるインスタンス間の干渉を回避し、重要なリソースへのアクセスコントロールを管理するためのローカル名前空間を定義する。
提示されたモデルは非常に柔軟性があり、JDKの最初のアップデート(バージョン1.1)でクライアントによって認識される電子署名が添付されていれば、リモートアプリケーションは、システムリソースへのアクセスを許可する信頼されたコードの概念に導入されました。 次の図で説明されている解決策は、、以前のアーキテクチャのハックより少しであるため、次のリリースで完全な書き直しを要求する。

| |
Flash MXとのActionScript(コース)
29€からWebサイトの開発者になる。 |
| |
バーニングCDやDVD(電子ブック)
フリーウェアのプログラムでCDやDVDを焼くためのガイド。 ちょうど25€。 |
| |
ウェブマスター上級(コース)
プロのウェブマスターになる。 39€から。 |