ブラウザでJavaScriptをサンドボックスで実行することは可能ですか?
ブラウザで実行されているJavaScriptをサンドボックス化して、HTMLページで実行されているJavaScriptコードで通常使用できる機能へのアクセスを防ぐことができるかどうか疑問に思っています。 たとえば、「興味深いイベント」が発生したときに実行されるイベントハンドラーをエンドユーザーが定義できるようにJavaScript APIを提供したいが、それらのユーザーにwindowオブジェクトのプロパティと関数にアクセスさせたくないとします。これはできますか? 最も単純なケースでは、ユーザーがを呼び出せないようにしたいとしますalert。私が考えることができるいくつかのアプローチは: window.alertグローバルに再定義します。ページで実行されている他のコード(つまり、ユーザーがイベントハンドラーで作成していないもの)がを使用する可能性があるため、これは有効なアプローチではないと思いますalert。 イベントハンドラーコードをサーバーに送信して処理します。イベントハンドラーはページのコンテキストで実行する必要があるため、サーバーにコードを送信して処理するのが適切な方法であるかどうかはわかりません。 おそらく、サーバーがユーザー定義関数を処理し、クライアントで実行されるコールバックを生成するソリューションは機能するでしょうか?そのアプローチが機能しても、この問題を解決するより良い方法はありますか?