Java AppletとはWebページのhtmlファイルから参照されるプログラムです。例えば前章のお絵かきソフトでは、ブラウザ上でJavaのプログラムを動かし、絵を描くことができました。これはhtmlファイルからJavaのclassファイルであるお絵かきソフトを呼び出しているからです。このようにブラウザ上でJavaを動かす機能をJava Appletと言います。
ところでお絵かきソフトは、そのページを開いたら勝手にプログラムが実行されましたよね。よく考えてみるとこれって非常に怖いことです。あなたがインターネットサーフィンをしていたら意図していないプログラムが勝手に実行できてしまうのですから。もしかしたらあなたの個人情報を盗むプログラムや、ウイルスを仕込むプログラムや、勝手に有料サイトにつなげるプログラム、ハードディスクの中身を破壊するプログラム・・・、恐ろしいJava Appletが実行されてしまう可能性があると言うことです。
しかし、Java Appletではそのようなことが起こらないように下記のような制限が設けられています。
- ローカルPCのプログラムを実行、参照できない
- ローカルPCのファイルにアクセスできない
- ローカルPCの情報取得に制限がある
- Javaのclassファイルが置かれているサーバー以外と通信できない
|
これによって情報漏洩、悪意あるプログラムの実行などができるだけ起こらないようになっています。
このようなモデルをサンドボックスと言います。日本語に直すと「砂場」です。そう、公園にある砂場です。子ども達が遊ぶ程度の用途にしか使えないという意味です。お絵かきソフトで、描いたデータを保存できるようにしていないのは、ローカルPCにデータを描き込むことがサンドボックスの制限によってできないのです。作ったデータを保存することもできないし、通信にも制限がかけられていたら、その名の通り子供のお遊び程度のソフトしか作れません。
そこで、Javaではデジタル署名を用いてセキュリティが確認できる場合に限って上記の制限をはずすことができます。本サイトでは署名については解説しません。