November 2020
Intermediate to advanced
740 pages
9h 12m
Japanese
これまでブラウザ上でJavaScriptを使用して実現できるさまざまな機能を紹介してきました。ネットワークアクセスやマルチメディアの利用のみならず、ハードウェアへのアクセスまでがJavaScriptを通じて実行できます。これは非常にすばらしいことですが、よく考えてみると、同時に非常に危険なことです。ブラウザ上でJavaScriptを動かすということは、作成者も動作の詳細も不明なプログラムをダウンロードして確認もなしに実行することを意味します。しかも動作環境であるブラウザにはSNSどころかネットバンキングのアカウント情報などの非常に重要な情報が大量に保存されているのです。しかし、それにもかかわらずJavaScriptが原因で何か致命的な問題が起きたという話は、ないとは言わないまでも、それほど頻繁には聞かれません。これはどうしてなのでしょう?
JavaScriptが安全に利用できる最も大きな理由は、サンドボックスで動作するからです。サンドボックス(sandbox)は日本語で言うと砂場のことです。砂場の中では子供たちは自由にしかも安全に遊ぶことができ、砂場でどんなことをしたとしてもその枠の外側には影響を与えません。セキュリティ機構としてのサンドボックスも同様にプログラムの使用できるリソース、つまりアクセスできるファイルや実行できるプログラムを限定する代わりに、その制限の内側である限りは自由な利用を許可します。JavaScriptのサンドボックスによる代表的な制約には次のようなものがあります(ただし、これらの制限の中にはユーザーが明示的に許可を与えることで解除できるものもあります)。